{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0                       1  2        3       4       5      6   7  \\\n",
       "0  2019162542  /front-api/bill/create  8  1057.31   88.75  177.72  132.0  60   \n",
       "1      162644  /front-api/bill/create  5   749.12  103.79  240.38  149.0  60   \n",
       "2      162742  /front-api/bill/create  5   845.84  136.31  225.73  169.0  60   \n",
       "3      162808  /front-api/bill/create  9  1305.52   90.12  196.61  145.0  60   \n",
       "4      162943  /front-api/bill/create  3   568.89  138.45  232.02  189.0  60   \n",
       "\n",
       "                     8  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('./log.txt', header = None, sep = '\\t')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.columns = ['id', 'api', 'count', 'res_time_sum', 'res_time_min', 'res_time_max', 'res_time_avg', 'interval', 'created_at']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "2      162742  /front-api/bill/create      5        845.84        136.31   \n",
       "3      162808  /front-api/bill/create      9       1305.52         90.12   \n",
       "4      162943  /front-api/bill/create      3        568.89        138.45   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           created_at  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  \n",
       "2        225.73         169.0        60  2018-11-01 00:02:07  \n",
       "3        196.61         145.0        60  2018-11-01 00:03:07  \n",
       "4        232.02         189.0        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>65938</th>\n",
       "      <td>5233322</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>15</td>\n",
       "      <td>1944.58</td>\n",
       "      <td>72.99</td>\n",
       "      <td>225.94</td>\n",
       "      <td>129.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-01-16 20:53:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14406</th>\n",
       "      <td>1447429</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>4</td>\n",
       "      <td>779.38</td>\n",
       "      <td>96.29</td>\n",
       "      <td>298.62</td>\n",
       "      <td>194.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-17 19:42:39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>129053</th>\n",
       "      <td>9571258</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1151.82</td>\n",
       "      <td>71.82</td>\n",
       "      <td>222.66</td>\n",
       "      <td>143.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-04-03 16:57:19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4748</th>\n",
       "      <td>595032</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1703.61</td>\n",
       "      <td>108.64</td>\n",
       "      <td>340.14</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-06 16:14:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>132792</th>\n",
       "      <td>9844331</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1330.58</td>\n",
       "      <td>85.93</td>\n",
       "      <td>273.75</td>\n",
       "      <td>166.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-04-07 22:04:23</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             id                     api  count  res_time_sum  res_time_min  \\\n",
       "65938   5233322  /front-api/bill/create     15       1944.58         72.99   \n",
       "14406   1447429  /front-api/bill/create      4        779.38         96.29   \n",
       "129053  9571258  /front-api/bill/create      8       1151.82         71.82   \n",
       "4748     595032  /front-api/bill/create      9       1703.61        108.64   \n",
       "132792  9844331  /front-api/bill/create      8       1330.58         85.93   \n",
       "\n",
       "        res_time_max  res_time_avg  interval           created_at  \n",
       "65938         225.94         129.0        60  2019-01-16 20:53:25  \n",
       "14406         298.62         194.0        60  2018-11-17 19:42:39  \n",
       "129053        222.66         143.0        60  2019-04-03 16:57:19  \n",
       "4748          340.14         189.0        60  2018-11-06 16:14:20  \n",
       "132792        273.75         166.0        60  2019-04-07 22:04:23  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sample(5) # 随机采样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(179496, 9)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 9 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   api           179496 non-null  object \n",
      " 2   count         179496 non-null  int64  \n",
      " 3   res_time_sum  179496 non-null  float64\n",
      " 4   res_time_min  179496 non-null  float64\n",
      " 5   res_time_max  179496 non-null  float64\n",
      " 6   res_time_avg  179496 non-null  float64\n",
      " 7   interval      179496 non-null  int64  \n",
      " 8   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(2)\n",
      "memory usage: 12.3+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()  # 查看内存占用空间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['api'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.series.Series"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(df['api'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop('api', axis = 1) # 删除api列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sum  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "\n",
       "   interval           created_at  \n",
       "0        60  2018-11-01 00:00:07  \n",
       "1        60  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 8 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   count         179496 non-null  int64  \n",
      " 2   res_time_sum  179496 non-null  float64\n",
      " 3   res_time_min  179496 non-null  float64\n",
      " 4   res_time_max  179496 non-null  float64\n",
      " 5   res_time_avg  179496 non-null  float64\n",
      " 6   interval      179496 non-null  int64  \n",
      " 7   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(1)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                  179496\n",
       "unique                 179496\n",
       "top       2019-04-21 20:39:38\n",
       "freq                        1\n",
       "Name: created_at, dtype: object"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['created_at'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, count, res_time_sum, res_time_min, res_time_max, res_time_avg, interval, created_at]\n",
       "Index: []"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df.created_at == '2019-05-01']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>153089</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153090</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153091</th>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153092</th>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153093</th>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153968</th>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153969</th>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153970</th>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153971</th>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153972</th>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              id  count  res_time_sum  res_time_min  res_time_max  \\\n",
       "153089  11406128      6       2105.08        125.74        992.46   \n",
       "153090  11406236      7       2579.11         76.55        987.47   \n",
       "153091  11406347      7       1277.79        109.65        236.73   \n",
       "153092  11406446      7       2137.20        131.55        920.52   \n",
       "153093  11406488     13       2948.70         86.42        491.31   \n",
       "...          ...    ...           ...           ...           ...   \n",
       "153968  11475363      6       1083.97         70.85        262.22   \n",
       "153969  11475483      4        840.00        117.31        382.63   \n",
       "153970  11475550      2        295.51        101.71        193.80   \n",
       "153971  11475597      2        431.99         84.43        347.56   \n",
       "153972  11475664      3        428.84        103.58        206.57   \n",
       "\n",
       "        res_time_avg  interval           created_at  \n",
       "153089         350.0        60  2019-05-01 00:00:48  \n",
       "153090         368.0        60  2019-05-01 00:01:48  \n",
       "153091         182.0        60  2019-05-01 00:02:48  \n",
       "153092         305.0        60  2019-05-01 00:03:48  \n",
       "153093         226.0        60  2019-05-01 00:04:48  \n",
       "...              ...       ...                  ...  \n",
       "153968         180.0        60  2019-05-01 23:55:49  \n",
       "153969         210.0        60  2019-05-01 23:56:49  \n",
       "153970         147.0        60  2019-05-01 23:57:49  \n",
       "153971         215.0        60  2019-05-01 23:58:49  \n",
       "153972         142.0        60  2019-05-01 23:59:49  \n",
       "\n",
       "[884 rows x 8 columns]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[(df.created_at >= '2019-05-01') & (df.created_at < '2019-05-02')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=179496, step=1)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index # 当前索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 8 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   count         179496 non-null  int64  \n",
      " 2   res_time_sum  179496 non-null  float64\n",
      " 3   res_time_min  179496 non-null  float64\n",
      " 4   res_time_max  179496 non-null  float64\n",
      " 5   res_time_avg  179496 non-null  float64\n",
      " 6   interval      179496 non-null  int64  \n",
      " 7   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(1)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=179496, step=1)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.index = pd.to_datetime(df.created_at)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-11-01 00:00:07', '2018-11-01 00:01:07',\n",
       "               '2018-11-01 00:02:07', '2018-11-01 00:03:07',\n",
       "               '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "               '2018-11-01 00:06:07', '2018-11-01 00:07:07',\n",
       "               '2018-11-01 00:08:07', '2018-11-01 00:09:07',\n",
       "               ...\n",
       "               '2019-05-30 23:01:21', '2019-05-30 23:02:21',\n",
       "               '2019-05-30 23:03:21', '2019-05-30 23:04:21',\n",
       "               '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "               '2019-05-30 23:07:21', '2019-05-30 23:08:21',\n",
       "               '2019-05-30 23:09:21', '2019-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='created_at', length=179496, freq=None)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:48</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:01:48</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:02:48</th>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:03:48</th>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:04:48</th>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:55:49</th>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:56:49</th>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:57:49</th>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:58:49</th>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:59:49</th>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                         \n",
       "2019-05-01 00:00:48  11406128      6       2105.08        125.74   \n",
       "2019-05-01 00:01:48  11406236      7       2579.11         76.55   \n",
       "2019-05-01 00:02:48  11406347      7       1277.79        109.65   \n",
       "2019-05-01 00:03:48  11406446      7       2137.20        131.55   \n",
       "2019-05-01 00:04:48  11406488     13       2948.70         86.42   \n",
       "...                       ...    ...           ...           ...   \n",
       "2019-05-01 23:55:49  11475363      6       1083.97         70.85   \n",
       "2019-05-01 23:56:49  11475483      4        840.00        117.31   \n",
       "2019-05-01 23:57:49  11475550      2        295.51        101.71   \n",
       "2019-05-01 23:58:49  11475597      2        431.99         84.43   \n",
       "2019-05-01 23:59:49  11475664      3        428.84        103.58   \n",
       "\n",
       "                     res_time_max  res_time_avg  interval           created_at  \n",
       "created_at                                                                      \n",
       "2019-05-01 00:00:48        992.46         350.0        60  2019-05-01 00:00:48  \n",
       "2019-05-01 00:01:48        987.47         368.0        60  2019-05-01 00:01:48  \n",
       "2019-05-01 00:02:48        236.73         182.0        60  2019-05-01 00:02:48  \n",
       "2019-05-01 00:03:48        920.52         305.0        60  2019-05-01 00:03:48  \n",
       "2019-05-01 00:04:48        491.31         226.0        60  2019-05-01 00:04:48  \n",
       "...                           ...           ...       ...                  ...  \n",
       "2019-05-01 23:55:49        262.22         180.0        60  2019-05-01 23:55:49  \n",
       "2019-05-01 23:56:49        382.63         210.0        60  2019-05-01 23:56:49  \n",
       "2019-05-01 23:57:49        193.80         147.0        60  2019-05-01 23:57:49  \n",
       "2019-05-01 23:58:49        347.56         215.0        60  2019-05-01 23:58:49  \n",
       "2019-05-01 23:59:49        206.57         142.0        60  2019-05-01 23:59:49  \n",
       "\n",
       "[884 rows x 8 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.interval.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([60])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.interval.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "2018-11-01 00:02:07      5        845.84        136.31        225.73   \n",
       "2018-11-01 00:03:07      9       1305.52         90.12        196.61   \n",
       "2018-11-01 00:04:07      3        568.89        138.45        232.02   \n",
       "\n",
       "                     res_time_avg           created_at  \n",
       "created_at                                              \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07  \n",
       "2018-11-01 00:02:07         169.0  2018-11-01 00:02:07  \n",
       "2018-11-01 00:03:07         145.0  2018-11-01 00:03:07  \n",
       "2018-11-01 00:04:07         189.0  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = df.drop(['id', 'interval'], axis = 1)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 6 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   count         179496 non-null  int64  \n",
      " 1   res_time_sum  179496 non-null  float64\n",
      " 2   res_time_min  179496 non-null  float64\n",
      " 3   res_time_max  179496 non-null  float64\n",
      " 4   res_time_avg  179496 non-null  float64\n",
      " 5   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(1), object(1)\n",
      "memory usage: 9.6+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177832</td>\n",
       "      <td>108.419626</td>\n",
       "      <td>359.880374</td>\n",
       "      <td>187.812208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.486073</td>\n",
       "      <td>79.640693</td>\n",
       "      <td>638.919827</td>\n",
       "      <td>224.464813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               count   res_time_sum   res_time_min   res_time_max  \\\n",
       "count  179496.000000  179496.000000  179496.000000  179496.000000   \n",
       "mean        7.175909    1393.177832     108.419626     359.880374   \n",
       "std         4.325160    1499.486073      79.640693     638.919827   \n",
       "min         1.000000      36.550000       3.210000      36.550000   \n",
       "25%         4.000000     607.707500      83.410000     198.280000   \n",
       "50%         7.000000    1154.905000      97.120000     256.090000   \n",
       "75%        10.000000    1834.117500     116.990000     374.410000   \n",
       "max        31.000000  142650.550000   18896.640000  142468.270000   \n",
       "\n",
       "        res_time_avg  \n",
       "count  179496.000000  \n",
       "mean      187.812208  \n",
       "std       224.464813  \n",
       "min        36.000000  \n",
       "25%       144.000000  \n",
       "50%       167.000000  \n",
       "75%       202.000000  \n",
       "max     71325.000000  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['count'].hist()  # 初步分析count，直方图\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 表示接口调用分布情况，大部分都在10次以内  ，反映出每分钟调用的次数分布情况\n",
    "df['count'].hist(bins = 30)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 切出一天的数据，绘制一天时段的接口调用情况\n",
    "df['2019-5-1']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 凌晨时间无人访问， 下午2，3点第一个访问高峰，晚上，8，9点，第二个访问高峰"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 用count重采样，用一个小时进行采样，没那么多数据点了，图像比较平滑\n",
    "df2 = df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:00</th>\n",
       "      <td>4.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 01:00:00</th>\n",
       "      <td>2.272727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 02:00:00</th>\n",
       "      <td>1.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 03:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 04:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 05:00:00</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 06:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 07:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 08:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 09:00:00</th>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 10:00:00</th>\n",
       "      <td>1.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 11:00:00</th>\n",
       "      <td>1.604651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 12:00:00</th>\n",
       "      <td>3.298246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 13:00:00</th>\n",
       "      <td>6.866667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:00</th>\n",
       "      <td>10.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 15:00:00</th>\n",
       "      <td>12.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 16:00:00</th>\n",
       "      <td>9.916667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 17:00:00</th>\n",
       "      <td>7.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:00:00</th>\n",
       "      <td>6.783333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:00:00</th>\n",
       "      <td>9.850000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:00:00</th>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 21:00:00</th>\n",
       "      <td>10.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 22:00:00</th>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:00:00</th>\n",
       "      <td>5.083333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         count\n",
       "created_at                    \n",
       "2019-05-01 00:00:00   4.428571\n",
       "2019-05-01 01:00:00   2.272727\n",
       "2019-05-01 02:00:00   1.833333\n",
       "2019-05-01 03:00:00        NaN\n",
       "2019-05-01 04:00:00        NaN\n",
       "2019-05-01 05:00:00   2.000000\n",
       "2019-05-01 06:00:00        NaN\n",
       "2019-05-01 07:00:00        NaN\n",
       "2019-05-01 08:00:00        NaN\n",
       "2019-05-01 09:00:00   1.000000\n",
       "2019-05-01 10:00:00   1.400000\n",
       "2019-05-01 11:00:00   1.604651\n",
       "2019-05-01 12:00:00   3.298246\n",
       "2019-05-01 13:00:00   6.866667\n",
       "2019-05-01 14:00:00  10.483333\n",
       "2019-05-01 15:00:00  12.333333\n",
       "2019-05-01 16:00:00   9.916667\n",
       "2019-05-01 17:00:00   7.666667\n",
       "2019-05-01 18:00:00   6.783333\n",
       "2019-05-01 19:00:00   9.850000\n",
       "2019-05-01 20:00:00  11.000000\n",
       "2019-05-01 21:00:00  10.416667\n",
       "2019-05-01 22:00:00   8.000000\n",
       "2019-05-01 23:00:00   5.083333"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df2[['count']].resample('1H').mean()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 折线图和直方图， 可以看到业务的高峰时段在什么地方， 分不清具体时间，绘制柱状图\n",
    "plt.figure(figsize = (10, 3))  # 单位是英寸\n",
    "df2['count'].plot(kind = 'bar')\n",
    "plt.xticks(rotation = 60)  # 文字旋转角度\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析有没有异常时段，访问接口过于频繁，可能就是黑客潮水攻击\n",
    "df['2019-5-1'][['count']].boxplot(showmeans = True, meanline = True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 20:47:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3117.20</td>\n",
       "      <td>84.90</td>\n",
       "      <td>260.82</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-01 20:47:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:03:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3706.20</td>\n",
       "      <td>78.12</td>\n",
       "      <td>321.47</td>\n",
       "      <td>176.0</td>\n",
       "      <td>2018-11-01 21:03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:13:09</th>\n",
       "      <td>24</td>\n",
       "      <td>4602.03</td>\n",
       "      <td>76.31</td>\n",
       "      <td>391.12</td>\n",
       "      <td>191.0</td>\n",
       "      <td>2018-11-01 21:13:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-02 21:34:11</th>\n",
       "      <td>30</td>\n",
       "      <td>4610.15</td>\n",
       "      <td>72.49</td>\n",
       "      <td>463.41</td>\n",
       "      <td>153.0</td>\n",
       "      <td>2018-11-02 21:34:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 14:20:13</th>\n",
       "      <td>21</td>\n",
       "      <td>3113.93</td>\n",
       "      <td>74.29</td>\n",
       "      <td>266.20</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-03 14:20:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:33:21</th>\n",
       "      <td>27</td>\n",
       "      <td>6456.64</td>\n",
       "      <td>99.65</td>\n",
       "      <td>978.91</td>\n",
       "      <td>239.0</td>\n",
       "      <td>2019-05-30 21:33:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:43:21</th>\n",
       "      <td>21</td>\n",
       "      <td>6371.84</td>\n",
       "      <td>65.98</td>\n",
       "      <td>1175.37</td>\n",
       "      <td>303.0</td>\n",
       "      <td>2019-05-30 21:43:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:47:21</th>\n",
       "      <td>21</td>\n",
       "      <td>3992.83</td>\n",
       "      <td>87.83</td>\n",
       "      <td>440.88</td>\n",
       "      <td>190.0</td>\n",
       "      <td>2019-05-30 21:47:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:53:21</th>\n",
       "      <td>24</td>\n",
       "      <td>8467.02</td>\n",
       "      <td>120.22</td>\n",
       "      <td>1511.17</td>\n",
       "      <td>352.0</td>\n",
       "      <td>2019-05-30 21:53:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 22:17:21</th>\n",
       "      <td>21</td>\n",
       "      <td>4926.35</td>\n",
       "      <td>85.01</td>\n",
       "      <td>826.90</td>\n",
       "      <td>234.0</td>\n",
       "      <td>2019-05-30 22:17:21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>746 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 20:47:09     21       3117.20         84.90        260.82   \n",
       "2018-11-01 21:03:09     21       3706.20         78.12        321.47   \n",
       "2018-11-01 21:13:09     24       4602.03         76.31        391.12   \n",
       "2018-11-02 21:34:11     30       4610.15         72.49        463.41   \n",
       "2018-11-03 14:20:13     21       3113.93         74.29        266.20   \n",
       "...                    ...           ...           ...           ...   \n",
       "2019-05-30 21:33:21     27       6456.64         99.65        978.91   \n",
       "2019-05-30 21:43:21     21       6371.84         65.98       1175.37   \n",
       "2019-05-30 21:47:21     21       3992.83         87.83        440.88   \n",
       "2019-05-30 21:53:21     24       8467.02        120.22       1511.17   \n",
       "2019-05-30 22:17:21     21       4926.35         85.01        826.90   \n",
       "\n",
       "                     res_time_avg           created_at  \n",
       "created_at                                              \n",
       "2018-11-01 20:47:09         148.0  2018-11-01 20:47:09  \n",
       "2018-11-01 21:03:09         176.0  2018-11-01 21:03:09  \n",
       "2018-11-01 21:13:09         191.0  2018-11-01 21:13:09  \n",
       "2018-11-02 21:34:11         153.0  2018-11-02 21:34:11  \n",
       "2018-11-03 14:20:13         148.0  2018-11-03 14:20:13  \n",
       "...                           ...                  ...  \n",
       "2019-05-30 21:33:21         239.0  2019-05-30 21:33:21  \n",
       "2019-05-30 21:43:21         303.0  2019-05-30 21:43:21  \n",
       "2019-05-30 21:47:21         190.0  2019-05-30 21:47:21  \n",
       "2019-05-30 21:53:21         352.0  2019-05-30 21:53:21  \n",
       "2019-05-30 22:17:21         234.0  2019-05-30 22:17:21  \n",
       "\n",
       "[746 rows x 6 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['count'] > 20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11641f650>"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 某一天的响应时间，平均响应时间\n",
    "df['2019-5-1']['res_time_avg'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1174f95d0>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['2019-5-1'][['res_time_avg']].boxplot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:2: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
      "  \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:34:48</th>\n",
       "      <td>1</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.0</td>\n",
       "      <td>2019-05-01 00:34:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:49</th>\n",
       "      <td>17</td>\n",
       "      <td>19770.18</td>\n",
       "      <td>207.54</td>\n",
       "      <td>2974.52</td>\n",
       "      <td>1162.0</td>\n",
       "      <td>2019-05-01 14:00:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:36:49</th>\n",
       "      <td>8</td>\n",
       "      <td>8799.92</td>\n",
       "      <td>96.59</td>\n",
       "      <td>3233.26</td>\n",
       "      <td>1099.0</td>\n",
       "      <td>2019-05-01 18:36:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:09:49</th>\n",
       "      <td>6</td>\n",
       "      <td>7399.94</td>\n",
       "      <td>307.39</td>\n",
       "      <td>3153.02</td>\n",
       "      <td>1233.0</td>\n",
       "      <td>2019-05-01 19:09:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:10:49</th>\n",
       "      <td>13</td>\n",
       "      <td>23595.60</td>\n",
       "      <td>206.20</td>\n",
       "      <td>4664.84</td>\n",
       "      <td>1815.0</td>\n",
       "      <td>2019-05-01 19:10:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:38:49</th>\n",
       "      <td>15</td>\n",
       "      <td>16169.25</td>\n",
       "      <td>142.47</td>\n",
       "      <td>3624.26</td>\n",
       "      <td>1077.0</td>\n",
       "      <td>2019-05-01 20:38:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2019-05-01 00:34:48      1       1694.47       1694.47       1694.47   \n",
       "2019-05-01 14:00:49     17      19770.18        207.54       2974.52   \n",
       "2019-05-01 18:36:49      8       8799.92         96.59       3233.26   \n",
       "2019-05-01 19:09:49      6       7399.94        307.39       3153.02   \n",
       "2019-05-01 19:10:49     13      23595.60        206.20       4664.84   \n",
       "2019-05-01 20:38:49     15      16169.25        142.47       3624.26   \n",
       "\n",
       "                     res_time_avg           created_at  \n",
       "created_at                                              \n",
       "2019-05-01 00:34:48        1694.0  2019-05-01 00:34:48  \n",
       "2019-05-01 14:00:49        1162.0  2019-05-01 14:00:49  \n",
       "2019-05-01 18:36:49        1099.0  2019-05-01 18:36:49  \n",
       "2019-05-01 19:09:49        1233.0  2019-05-01 19:09:49  \n",
       "2019-05-01 19:10:49        1815.0  2019-05-01 19:10:49  \n",
       "2019-05-01 20:38:49        1077.0  2019-05-01 20:38:49  "
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df['2019-5-1']\n",
    "df2[df['res_time_avg'] > 1000] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 2019-05-01 00:34:48\t1\t1694.47\t1694.47\t1694.47\t1694.0\t2019-05-01 00:34:48 定义为异常值\n",
    "df['2019-5-1'][['res_time_sum',\t'res_time_min',\t'res_time_max',\t'res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = df['2019-5-1'].resample('20T').mean()\n",
    "data[['res_time_sum',\t'res_time_min',\t'res_time_max',\t'res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 业务高峰时段 下午2-3点，晚上7-8点，响应时间都是上升的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAENCAYAAADgwHn9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2dd7wcVfXAvyeNJJQQSCgJJXSpAYwSDSBFalREVH6AgIriDwFRsWBB6QSUgIioCPwoBpQSaughECAk8NJ7g/T20l/K6+f3x8y+7Htv970tM3Nnd87389nP7k4798zcueeWc88VVcUwDMMwADq4ToBhGIYRH8woGIZhGE2YUTAMwzCaMKNgGIZhNGFGwTAMw2iik+sEFEOvXr20X79+rpNhGIZRUowfP361qvbOtK+kjUK/fv2oqKhwnQzDMIySQkQWZttn3UeGYRhGE2YUDMMwjCbMKBiGYRhNmFEwDMMwmojcKIhIVxH5SEQmi8h0EbnR376fiIwTkbki8l8R6RJ12gzDMJKOi5ZCDXCKqvYHjgbOFJGBwB3A3ap6ELAOuMxB2gzDMBJN5EZBPTb5fzv7HwVOAZ7xtz8KfD3qtBlGW1TXNfD69BWuk2EYoeJkTEFEOorIJGAV8CYwH1ivqvX+IUuAvlnOvVxEKkSkorKyMpoEGwZw64iZ/Ojx8YxfuM51UgwjNJwYBVVtUNWjgb2AzwOHZjosy7kPqOoAVR3Qu3fGCXmGEQqL1m4BYGN1neOUGEZ4OPU+UtX1wDvAQGBnEUnNsN4LWOYqXYZhGEnFhfdRbxHZ2f/dDfgyMBMYBXzTP+xS4IWo02YYhpF0XMQ+2hN4VEQ64hmlp1T1ZRGZAfxHRG4BJgIPOUibYRhGooncKKjqFOCYDNs/wRtfMIyCWbe5li11DfTduZvrpBhGSVLSUVINoyXH3TaS2oZGFgwZ7DophlGSWJgLo6yobWh0nQTDKGnMKBiGYRhNmFEwDMMwmjCjYBiGYTRhRsEwDMNowoyCYeRLxgAshlEemFEwjBwRcZ0CwwgfMwqGYRhGE2YUDMMwjCbMKBiGYRhNmFEwDMMwmjCjYBiGkSPH3/E2Fz80znUyQsUC4hmGYeTIknVbWbJuq+tkhIq1FAzDMIwmzCgYhmEYTZhRMAzDMJowo2AYhmE0YUbBKHk++nQtA28byUuTl7lOilHG/OLpyU7l/+/j4xn65pzQ5ZhRMEqeP70+ixUbq7n6yYmuk2KUMc+MX+JU/mvTV3DvyLmhyzGjYBiGYTRhRsEwDMNoInKjICJ7i8goEZkpItNF5Bp/+w0islREJvmfs6NOm2EYRtJxMaO5HrhWVSeIyI7AeBF50993t6r+2UGaDMMwDBwYBVVdDiz3f1eJyEygb9TpMIx8eWd2peskGEboOB1TEJF+wDFAKsLUVSIyRUQeFpGeWc65XEQqRKSistJeUgMEWxLNMILCmVEQkR2AZ4GfqupG4O/AAcDReC2JuzKdp6oPqOoAVR3Qu3fvyNJrGIaRBJwYBRHpjGcQhqnqcABVXamqDaraCPwL+LyLtBmGYSQZF95HAjwEzFTVoWnb90w77FxgWtRpMwzDSDouvI8GARcDU0Vkkr/tt8AFInI0oMAC4EcO0mYYhpFoXHgfvQ8ZRwZfiTotQTB58XoWrt3C1/r3cZ2UZoyZt5rq+gZO+czurpPiBFXFa5QaRvx5dvwSDuuzE4fuuZPrpNjKa8Vyzt8+AIidUbjwQc+ha8GQwY5TEgEZyv4x89cw6MBeoYhTNJTrGsnlWj/YXhzeVwtzYZQldQ2NrpNgGCWJGQXDMAyjCTMKhmEYRhNmFAzDMIwmzCgYgTN58XrmrapymoagPY821dQHer18WLx2C2M/WZNxX0Oj8ufXZ3PPW3NYvakm4pRFT0Oj8vzEpTQ2JmOwf/qyDcxYtjFSmWYUAuLD+Zlf2iRyzt8+4MtDR0cmLwrH018/OyUCKZk54c5R/M8DYzPue+zDBdw3ah73vDWXC7IcU048OmYBP/3vJJ6qWOw6KZEw+N73Ofve9yKVaUYhIKqq61wnwQiRJeu2uk5CRtJbB5+u3uwwJdFQ6eu7ZnOt45SUL2YUDCMXNBndFXGng98sVHseoWFGwShLbC5zeZIKk56QIQUnmFEwyhKLcFGeSFNLwW06yhkzCkbJs7G6tWdQmB4bLccXZq3YyMqN1cxbtSk0mdlwWTguXb+VFRuqI5WZsvWKMnHRukhlJwUzCkbJM3N5awNw+6uzWFUVXIGVXvb+4YXpTb+r6xo48573OO62kXx56LuBySsFBg15m4G3j4xWqN9UePKjRZx7/xjenLEyWvmOmLUiOrdUMwpG2bK5piF0GbUxirGUhC6zlIorN3peSAvXlL/HFUBlVXRzUMwoGIZRMiTB8LnGjIJhGCVDB7MKoWNGwShbgvRlN2+XeGAmIXzMKITE5pp6Vmyopj5Gfc5RYJOKwiNTvJ+qDJ5X5YyrhsKaFnGlNkYcwSD9tdpaG+5YmRmFkDj8j68z8PaR/OoZdzFzXPDvcYtcJyEUpi7dkHF7lGXUCXeOarXt8bEL09JS/vVoF0usLli9mc/e8lazbUfd8Eakadhat80QfGFIuB5fZhRC5vlJS10nIVLem1PpOglly9L18Yy/VO4sXrfFdRKoTjMK67eE20oxo2CULdaRVX60bCi4aDm4IEo9IzcKIrK3iIwSkZkiMl1ErvG37yIib4rIXP+7Z9RpK4akZE7DiBNJGcOKUk8XLYV64FpVPRQYCFwpIocB1wEjVfUgYKT/3zAKJgozHafKgCagbeTCJTUhdqeJyI2Cqi5X1Qn+7ypgJtAXOAd41D/sUeDrUactDOJUaBhGqWNvU/g4HVMQkX7AMcA4YHdVXQ6e4QB2c5ey/PnhYxVMy+KhUo70u24Evxne2rMqTjbQRQVv8drgBiWHvjGbfteNaLbti36soZ88ObHVvii9jy5+aFzT77URLnhz+6uzmv2/ZcTMQK47fuE6+l03gilL1rfaF4c8fc1/JkUmy5lREJEdgGeBn6pqztGeRORyEakQkYrKynh5urw3d7XrJETKkx+1XhIxaU3tlgRZMbhv1LxW25b5UUlfnLwsMDmFkJ7XgzSErnh7lhdYb7R5z7kxCiLSGc8gDFPV4f7mlSKyp79/T2BVpnNV9QFVHaCqA3r37h1NgosgBpUMwzCKIGkVHRfeRwI8BMxU1aFpu14ELvV/Xwq8EHXajPIiaS+zYQRBJwcyBwEXA1NFJNVR9ltgCPCUiFwGLAK+5SBthmHkidne8iJyo6Cq75O9V+XUKNNiGIbRHnEYaI4Sm9EcIHe8Nouhb8xutk0EVm+qod91I/jdc1MDk1Vb38iAW97ilanLW+3768i5Tb/HzA938HtLbfOAbOkv0Kl3vcO3/jEmMFnL1m/l4N+9yqwVG/nLW3MDvXZQXDFsQiATjZ4dvyT/xenLqPC69OGPuO2VYDyLcuFvo+YDcPdbc1vti7IbMt2j7MmPsscRm7eqKrQ0mFEImHvfbu4xogpj5q8BYFiAweLWbq5l9aYabnxpeqt9d705Z1t6RrbO5EGyYHV2z5P5lZv5eEFw6+i+OWMltQ2NPDFuEXe/NSfQawdJ3oV5Bn79bLICKbbk3TmVPDD6k8jlNgTx8ALiN8OzVyKfHr8kNLlmFAyjCMqocm4YgBmFSCjn+CwtQyuUsaqGkQjMKIRMWINUSYhzk424G54gHnnSBjeN+GBGocRxvbBKywI6zMIs/2u7sR4xt1mBU84t4bgS5ntvRiFk6ho00rglLRn7yVp++fRkJiyKZlD29ekrQ5eRvtpYW1z71OSMS1jmS6bYPrX1jVw5bAIzlreO0HJ7AF4zhZSztfXhL/3a2Kj8/L/N8/NfQnZmAM/w/Dpmqxi+MX1F0deoa2jkyicmBJCa4DCjkACeHr+E7z78ketkRM7kJRtYE0Cwtofeb+0FM2HROkZMXc63/vFhq30Pvv9p0TLrY+QFk86KjdUMn9h8NcF3ZocfL2hrXQP/rWgdaysKsj2Jyx8fX/S1Jy9ez4gprd3KXWJGoURJYovdutkNwyPMMUUzCiWO6wHJJBqnJOPqcbvMZ0mrjJhRKHESVSg7soCuB/MNoyU20GzElqS6xibKGKfhytPIZYs4aY/ajEIRXBUDr4EVG6v557vz2z0u7GVBVZX732m9KEwQbNhSx9A3ZrNmU00o12+LeauqMi528+cWMa6ixGUohkmLW69MFiT/HruQ7/3fNqeIh/xB+7Zs0VszgvV4e7piMVc/OZFPV28O9LqlghmFIng5Jl4Dt786i5Ubq52mYeGaLdz5WjgF5c0jZnDv2/O4J0OwsrD56l8/yLh9/EJ3cZeeb+H9EyVXPTEx1Ov//vlpjErzZrr55RnU1De0ec4PHqsINA2/fGYKL01exvn/9DzLXFRG2iNM92MzCmWCq+6MlNyGEBOwta7tQiFMXMrORnU7haQRDJtqvAjAcfQODrPhb0ahRIlhPjUiIogJeUb7pOo5cZyxHWaSzCiUCa5dU80/JzriFN45Clx5f6WcKOJ4t22egtEu7dUcXBsNIzga4lhKGWWDGYUQiKJ5vzCLZ8QH88JbaW3x2i28M3tVs21hjiWkWLup+FAV5cTazeEOfM5asZHxC9c2/R/3yRpufGl6m90oxXaxqCrPhrhwTCGoQnVdA099HG14jZnLNzp1ZIh8jeYk8PT48DPRhQ+Oa/Y/1RK4qMX2IDnt7neprmtkwZDBTduGT1jCsfv0DNXl9cNP1mTdV1VdF5rcuJJaOjIszrznPYCm53z+A2MBGLj/rlnPeW3aCs46cs+CZY6Zv4Zrn55c8PlhoMDQN+dQEXEBfdZf3mv3GBtTKDHWbYm+oIpiLKy6rrUb3HoHuqbTGH5gUMOnqro+674NW4vLB21dG9z161dWxc8dNWzMKIRADJ0VQseGLMqfNruPIkxHVCQ1T0duFETkYRFZJSLT0rbdICJLRWSS/zk76nSVOu313oSdwcuxUDDigUhyC+hslNs8hUeAMzNsv1tVj/Y/r0ScpkBJUjyg5GhqhEl7hZyrfBZXY1RWYwqqOhpY2+6BJUwcu4+CdIgaPaf1oipxfXmSxpyVVYFda/WmmmYLwLSVhYrN83F8Z2rqGwNZpKnUiNOYwlUiMsXvXuqZ7SARuVxEKkSkorIy/BWfsrG5JvvA2LsZCk3XFDsQmM4lMVrF7e3Z4S//WUqcfvfowK51wh2jYrFUZMUCd+6ZYb/LhdrCMGdZx8Uo/B04ADgaWA7cle1AVX1AVQeo6oDevXtHlb5WtBWQatn6rRGmJNksXWf3OixaxX1yVJtfVeU22GMcCdMFPBZGQVVXqmqDqjYC/wI+7zpNpYaz7hu/oHA1YzrskOBGNCT1MRaqdtm3FEQkfdbLucC0bMcamYlhl6xhBIJqPIPSlSuRz2gWkSeBk4BeIrIE+CNwkogcjVe2LQB+FHW6giRJ+TflaWVLVpY/bXnVFetxl6R3Jp04qh25UVDVCzJsfijqdJQymcYzNtfUs86Bp8QnlZuZuXwjdQ3Zx1g21dSzw3YWUaUUcL1YUyaq2nDqCILqItbMWLGhmj16dA0wNbmxfEN4zykW3UflRthN3aufbO0Rcspd73LMzW+GKjcTs1ZUcdZf3uNr92VeoQzgiD++Hpr8//vg09CuXQxj24jXFFcWrtnMcbeNLOjcFyYtK0p2W2MK1z8/LdQa9Tlt5N32GHj7yKKMSqHt6zdmrGwVnDIozCiUIK9PNzfMFKtjGkF19org5gtExdIivOYmOIzqWSyzi5zbUdtGKzlMpi3dEMp1zSiEQBz7CQ2jlCnXMYc4qmVGwTBCoBxdLMu1YDaaY0YhBOzlMcrQJrRJo2X6gohjPjGjEAJJCohnlA/tuRW3Gfso2KQ4EGCkSKRReG3acvpdN4JPsyxpmQtt5dGVG8NbmKPfdSNCu3Yc5RbLPW/NcSL3+hemO5EbJr8ZPjXrPlVCdYnuf9MboV3bFe/MXsU3//Gh62S0IpFG4SU/8mNYo/dGfBg2bpHrJCSGYnzn49iNkiuF9py9Pn1FUXLDCvGSSKNgTVHDaE2xZUwx3aZJfCXjOgyTTKPgU44eIobhirgWckZ+JNIoBDEQbPbEMIxiiKsRTaRRSGFB3AwjHtibGB8SaRTiaqGN1izfYIvo5MumAgPIlXLB7HIhng1bClvV8L8ViwNOSTAk0igYpUOm9aCNtllQhKt1qfLRp+6WfZ+2rLy8GM0oGIYBFO8BZC3w8iDRRsG8jwyjPHA5PlhuxjCRRqHcHqJhBEEp15FcVvDKLaxNIo1CilJ+CQwjbrgsHK2iFxyJNApBZN6/vj0vgJQYRvmQ1IK53FzbE2kUUhTT5Hw4pstAGkah+TqsWDpRUMJJjx2JNgpG/Cm3WlgUJLXG7gobUzAMwwiYYlspVnUIDidGQUQeFpFVIjItbdsuIvKmiMz1v3uGJd9qUkY546orxV6r8sBVS+ER4MwW264DRqrqQcBI/3/IWP3CMFI4deu0mlrehPW8nBgFVR0NtJyXfg7wqP/7UeDrockP68I5sHjtFmey563a5Ex2oS/92E/XFC171cbC4uLU1jcWJfflKcucyJ2waH1R5xfKxw5DTVwxbEJB5wUREqTc7FmcxhR2V9XlAP73bpkOEpHLRaRCRCoqK4uLi+OiZvTDxyqiF+pz3t/HOJM9aXFhBdXwCUuLln38naMKlL2kKLlXPTGxoPOeGV+c3Oufn9b+QSFw6yszCz7XlefTRQ+OK/oa5eb5FCejkBOq+oCqDlDVAb179y7wGgEnKg9qG4qrBRZDdV2DM9mNDm96oTXvukY3aW5odJNHyqxsy4mtAbwT5eYhFyejsFJE9gTwv1eFLdDFo3SZfcqtRmMES5n1guREKY9lhJX0OBmFF4FL/d+XAi84TEtolPIEIcMwWmPzFAJARJ4EPgQOEZElInIZMAQ4TUTmAqf5/8uOpJqEEq6QRY9VHIwcKDfvowtUdU9V7ayqe6nqQ6q6RlVPVdWD/O8QXRmKK6Hmraoq+Ny5qzYx7pPiPWoKwWXBPHlJeS1EEibVtW7GfpJoitYVuGpaOtV1bsaAXp26IpTrxqn7KHIK7cr58tDRRck9/4GxBZ03ZUlxroY1Rbo6FsPNL89wJrtgHFnR218t3IunVAnCCaKyqiaAlOTPkFdnOZE7dWk4Fa1EGoVS7crYVF3Y2rtGaeHI6ankqXfktbV2sxtjFBaJNAopSq257MpF0jBKAVeVvQ5lNgaUSKNQqkWrK//1xFJmL3t7uF29LB7XKAQzCoYz6hpK1ZwZRvg4m3NQXjYh2Ubh9enhjN6HxZpNta6TUBSba0prTKQxgO66qurivVtKiZr6/AeM6xoaueuN2UXLLtWxwriRSKPw9ixvsvTT45c4cw8thN8+N9V1Eorimv8UFgvIFf94d37R13AZ6yp/iq/y3vhS/l5md785h4Vr3AWKLJYyaygk0yikU7mpvDwH4sy0pRtdJyEvlm8oLLpqOlMTNj9j7sr85/C4jN4bBDamUGZYk9MwgsNlcDhnQwrlZRPMKJhNiI5yixFjZMCpB5PlryBIvFEwoiOJrbIEqpw3pX6PrPuozCjl0LmFsHjtlrx13lIbjNdQsu50YWwIIBZPUnH1KheyRsqKAMarwiLxRiFfPqks7UGxE+4cxdMV+a3s9aU/vROIbFexaUqJ/je94ToJRfFRAUtyBjUY76rSke8iTg2NysDbR4aUmuIxo5AnQXikuGbi4nV5HW+FuREmKwpcQ7slpdLqd7kKYS4k3ijk+3xi/jyNMuXQPXcKXUapd42XyqsZ9zLEjELJZKXgiHumLCfsXkeH3etgMKOQwIyURJ1LnVLpGnFLadyjuFdEzSjk+XxKvYltREuDFeaRYZHlgyHxRuHGl6bndXxQ7/ikxcWtopYE3ptb6ToJRVNb38jImSuLvs5hfcIfU7j0oY8CuY4rd8sz7yluRcRi2JrHEqpxryck0iiccfjuTb83OlrN7OMCXPeCIu7N1xSvTSutKLbZeGvmqqKvcdu5RwaQkrapCiiK7aerNwdynXyJoqVw7wXHZNy+qcQiALdFIo1CFJ4c7eF0QZPSsAlGGl07d3SdhJyJqtJxxUkHRCInnX136Z5xe6lUtHIhkUahGIJ6+GKDE+1SLq+ZPWqjlOjkOgEtEZEFQBXQANSr6oDAZZRdBPT8KJXCtlw8bhKX2yJ6bIm7rxERO6Pgc7KqrnadiDBxmaHLpKwtGZLWUogqeyXtvkaFdR/lSVCtjJtezm+FqvfnBmcjn52QX+wjVwRpvP778aK8jv9pia0S15JVVfl5AI0toRUIU/Ts3qXVthFTlocqM4ixnbhXyuJoFBR4Q0TGi8jlLXeKyOUiUiEiFZWV0bssuhpQuuO1WU7kuqTQl6dHt86ttv362fyWMn1+0rK85fbfe2d23K514zuoisTvBx+a87GTFuXn8vzYhwvyS0wbRFHo3XruEXz3i/1abb935NzQZP75W/05ZI8dM+/MQ+dCy5Dbzj2S+y86tqBz8yGORmGQqh4LnAVcKSInpu9U1QdUdYCqDujdu3dBAqJsdr501fHRCYsJB/TePpDrFPrydO3sJlufeFAv7vzmUaFd/6RDdsv52HwdGYIcZ4ui4nTRcfvSqWPr5xxmsLlvfnav0K6dCxcetw9nH7ln0//tOoWTz2NnFFR1mf+9CngO+LzbFBVHUC9IKbm8lU5Ky5d8i/hSyl9tEfcIpEESVuU2VkZBRLYXkR1Tv4HTgWmBywn6ghGQoLzeRKE6u/IuyybVxYBoUufBJCnURVj5PG7eR7sDz/lN307AE6r6mtskNcdVqO0kZfYU5aJzUK9uPgV9vkahXNy0S6GlEPckxqqloKqfqGp//3O4qt4ahdwT7xxFYw4lkKpyycP5xYdp66r5+OEH7bPfkGOJm8t9aUk3x7Nvu3UpTv7azbUFn9uxQ+vCNaiJivmsBfz9RyryWhGsui732D3tkU+OeXVqsN5Cy9fn7nVVSN7OxvF3jsr52KqAQut0ypDXgiBWRsEVi9ZuYUsOL0VNnsvuQduFucua8LotuRV8mwpYn/lflwzI6IWTL4X0c39vUD8e/V5xw1AvTlpa8LmnHrp7+wflychrvwRAv11bh1h44gfHsWPXzPd6wZrcYxCNX5TfanxtkU8F5ophEwKTC/mtl5xP3t5tx+3alptH2fBWAQESH7q09Rze80Ia+DajEDJBlfuumpz51E5T9Nm5G1NvPKN44XnqvGDIYP741cPZZ9fuHLTbDoGLPTyHSKWZWgrFckBvTxcRYcGQwSwYMrhp3xcO2JWpN2S+1/mkpJBUz731LPYPyNPMBfm8U7/Lwx24fbn5v8yZKhuJ8T4qN4IqzF15hzideV3EucWsY5Dt1HbtY8ym2OY3BpF/2lUz54+Yd5lvw1FCA+shSIL3UVQU+u4WVs4E5JLqKAPHrJzLmTDuV6GDse7uYe6Cg0xiqcSsyqeilYvRzFXvoAbDw3IOSKhRKOxmFlJbb+v55/PyuPKqcOmVUkzhkutAeka5WbbH0UC2lZfD9FYC730ojeI/GnLNrkG9yomYpxB3Zq2oCvR6dQ255475lcEuXHL7K7NYun5ru8fNW7UpULm5Mm3phoJCTaTIZBRueHE6yze0rfPclVXcnCUuVdg24c0Zxa/Qlk6+c5qDQhU2bK3jhhenB+rVFDQDbx8Z6PVyfZuDaymEgxkFn1xqpd+4f0yb+08/rPlg0Kmf2Y0j9+rBL04/OOPxIwJ2x8tEthW7np2wJKegb9/+54d5ydu/17aBx2E/OC6vc9P5yl/fb3P/UXv1aHP/37/TOkbMI2MW8JMn29b5tLuzL+l434XHMvzHX2y1/VdnHsIJB/Xiki/sm/G8XFtbP3ysIqfjMpEpnErYa3Z0yRBmAjyj8I935/PImAUMG5dfIMJcePCSYKLpV9fl7jH05UPbDzGSawUqW1GTzUnhke99rtn/679yGADfG7RfTvLyxYyCT2P+3qatOG7/XZv9f+i7n2O7Th256pSDGLj/Lq2Or8vDfa4t5t92dtZ9Fx63TzNvlXRy6WKpqc9c0zv9sN3pu3O3Vtt33WFb5MpBB/Zq9/qF8uJVx7fyxEnnqL12zrh93Za6gmXuvUt3jt2nZyuZPz7pQB6/7Dh67ZDZbTGKbqcj2zGSxZDN66oto9O1kzdXZF0Rcz4y8fLVx/Plw4p3+82na/KHJ+xH9y7tu1jnPPcng+wfn3RARlfqBUMGt4p5ddnx+7FgyGB6t+MmWyhmFHzqg7AK+coMyCgUWubk4j6Zb20z7mOMmxysye1qKCIvl9Q2Ds53eEaBHt28QnRjdeFGOEyKGXPKRq7dQtmOissIjRkFn2JcGFPk+/LXO47jUMgchHTiOPDaHpvLaIH19sjn+QRtzHfyw5dv2BqsUQgqnUG87y3J1ShkOi5O71IijUKmBxBGzaGZzAwmIyiZhWaoMCZaxaOuk50qB0bB1Qufn+dYcE9OVdnBn9G+MWCjEBT5vHu5tpZzvWTcW9OJNAqZSM8kr0xdzsQAp/1D5oLhlhEz2zynvqGRJz9axOyAvZ5StNVSqK33ZAdtLH/+30mBxpwpBf7z8WIncnMduH5h0lJWb8re95+va/Dlj49vKiCDbikExbCxwQ+A3/LyjHZbogvXbOa/jvJDriTSKHytf59W21KF37hP1nDlExO45KGPmF+ZmzfBT045kMP77MRpaQNgZx2xR7Njrjz5wLzSuGpjNRc+OI7fDJ/KGfdk94hJsev22wZ49+rZjR99aX+O2SfzYGuKbDZh2tINfO2+9/nN8OyrlYnAb89uPfX/6lPa1nP4xKW8NKVtV9OqLP3Qp3zGG3DrH+Kgaja+cUzfZv8v9T2NfnXmIe2eW0wAtG8PyD2+zWdarAo2e2X7lYnKqhqu+c+kNo/541cPb7XtyL5tP4N/j10IFGcUunTqwKF7Nh/k3i+gsBq3vpK5QnbCQducI1LP+Lxjmz+D679yWEYni4qF6xj65pw25Q6+930Wrd3Savu5x/Rt955GRdxCZ1ieWZ8AABW+SURBVEfCXj1bBxZraFQ219Tzy2em0HfnbmypbeDyxyp4/spB7Ni19fKOKT647hT67tyNn5/uFQ7ZvGEGHdiLEw/uzeg57S8hOvaTNVz95ESqquvYY6eurNjYOvLjgiGD6XfdCMBr3o6//rSm/+//+pR2ZUDrAH91DY38bdQ87nt7Hrts34XtOnVoMwhg+ipQ2fTOxKZ2alOZ5m889aMv8Pn9WntwRcHeu3Rj6PlHN9t24zlHcOM5R4Qqd59dunPnN/vnfPz5n9ubG1/Kb+3vpyqy11rbeqZXnHSA9yNLIyJlDDZszc8gZpOZyts7tAi0uGePrizfkN961G3x+GXHNcnK9owvO34/Ljt+v6bj0tnazryMTHk/m84//fJBuSQ5cBLZUshEQ6Nyx2uzWLxuC3d9qz9/u/BYFqzZwrVPTQ6suyNTxTy9e0ZV+ee787nowXHsuF0nXrjyeM44PPiomylq0jLwzOUbOee+D7jnrbl8tX8f3vjZic1aH0HS3u0Me3wnX1zN6g7bG6WhUXkihHkEqWtD+N5HMRqfBWD7IsO2x4FEthQyMXruah77cCHfH7Rf03yD3519KDe9PIO/jZrH1acWb7UzddfU1jfSrUtHNlbX8YunJvPGjJWcfeQe3HHeUezYtTOH7NF+ZM5CqalvpL6hkX+8O5+/jJxLj26d+efFn+WMw72ur+3aWBehmIKyvT7quHtnlAvvzlmV06z2TLQ3zJAyCvmElC4HcpnPEHdKX4OAuPnlGezfa/tmfcTfG9SPqUs3MPStORzeN3PhXGzwr5r6Bj5dvZkfDxvPknVbuf4rh/H9Qf2aPB4OadFPHCSzVlTxjb+PYcqSDXy1fx9u/Nrh7JLWOggrNG97LS/XrrotCWktE+cMG7uI3jtuR2VVTeDXroto3k/Ys7bzpWX3VilS+hoEyJ+/3Z+uabVjEeH2bxzJnJVVXPNk24NxuZAp+9739jweH7uQnbt35j+XD2RAv+b95mEaBYAl67Zy/0XHNhsfSBGWUXh3TiUd2ihpM618FuSr/+iYBaGHlW7JYx8uyPucfOsbmVKZTW5tfSNvz17FVScfyF/fnpdv0trlk7RYXYXoXgz5Pt8gmbBoXeT6Bo0ZBZ/LT9yfY/fp2Wp7184d+efFn+W8v4/J6OPes3vu/e7nHrsXo2Y3H2h+8P1PGXTgrvzlf47JGCZhh+060adHV5ZlGEy7/MT9eWD0J03/f3jCfvzrvU9zTk/fnbvxwlWDsoZn2HuX7kxesqHZtl2378KazbV87ehtHlwtPXPaY9Tsylb3oT323bVtr5PBR7U2atnuxx9fnJ6X7O8MzBzTKBv799qeT1Y3D2D4hxfykwne883G9wb14/8+WNBsW8swK+3J7da5Ixd8fh9enLyMhWuae8S0XOrxG8f2ZfiEbSvSHeG3nL8zcF9uenlGq/25piFXvvvFfjwyZkGr7Zd8YV9uf3VWs235Pt8UFx63DwDH7rMzM5cX5gb+6rQVvDptRUHnpkgNnp94cO+irlMoUiqxzzMxYMAAragoPIgYwIYtdXTsKO02+2rqG9hUXd/Uz15MM1FVqalvZHNNPSJCz+6d26yN1tY3srWugR7dsntB5SN73Za6Zt1E2WhoVNZvqaVTxw6ByN6wtY6GRs2py02Bzh070L1LRzpnCbyWK/UNjazfWkeXTh3QxvZDmnTq2IHGRmXndp5LLlRV17G1roGOOVynUb31pQXo3qVj4SHeVdlS29BuhNJuXTrSvUsnGhqVNZtr6Nq5Iztu16konbfWNlBVXUfHDkLXzh2pa2hs13Fgh66d2K5T8QO0G7bW5Rw6pkG1KU8HIbu2vpGa+oacxlAUr7LZvXPHNlvMYSIi41U1Y2TBxBsFwzCMpNGWUYiVS6qInCkis0Vknohc5zo9hmEYSSM2RkFEOgJ/A84CDgMuEJHD3KbKMAwjWcTGKACfB+ap6ieqWgv8BzjHcZoMwzASRZyMQl8gfc79En9bM0TkchGpEJGKysr8PFgMwzCMtomTUcg0DN9qFFxVH1DVAao6oHdvNy5bhmEY5UqcjMISYO+0/3sBha/cbhiGYeRNbFxSRaQTMAc4FVgKfAxcqKpZZ6KISCWwsECRvYDVBZ5bLK5km87JkJ00uS5ll6rO+6pqxq6W2MxoVtV6EbkKeB3oCDzclkHwzym4/0hEKrL56YaNK9mmczJkJ02uS9nlqHNsjAKAqr4CvOI6HYZhGEklTmMKhmEYhmOSbBQeSKBs0zkZspMm16XsstM5NgPNhmEYhnuS3FIwDMMwWmBGwTAMw2jCjIJhlDASt/UoQyIpesYBMwohICJd0n5HmplFZIeoZYtH9mXCwpd/ioi0vTRb8DJFRH4kIq2XfItG/q0icqhGPCgoIn1T+TvivN20ypODd6pHSmYSjFNZGgUR+aGI3C8iB0Qs92IR+RC4R0R+BhDVSysiF4lIBfAnEbkpKtl+yPPXgYdFJNJgVL7O44GTgboI5Z4BzAK+COS+Hmswsi8UkdHAj4HvRCj3fBGZBtwNPA6R5a8L/Gd8q4hcE5VcX/Z5IrIQuBf4S1SyReQHIvKUiJwQtqyMqGpZfPAC6nUEzgfmAqOBC4GuEcjtCtwAvAscj1dIjQZOiUB2N+B6YBRwInA4XoiQIyK679sB7/j6ngt0ikDnzsAvgHXAwIjzWSe8AuKMTGkLSWYHoAfwTzwDPAj4AXBtmHLT5H8OGAN80f8/Ezg2gns9wJc7EC+kw2Tg+xHp3Bt4w5fdDajAM8QdQ5Z7BjADeBb4FdAzCn3TP2XRUhCRrurRAEwAjgP+jldIHhqB3GpgCvANVX0feB/4ANg9AtlbgedU9WRVHY1Xc52LFz8qFLlpv0VVa4CXgOeAy4DdwpCbku3rXIcXJ2sYsFBEuvi1uj5hyU39VtV64BBgsd+tcK2InObfi8BrkSLSTVUbVXUD8ICqnqGqH+BFEP62n6Yw5HZN+7sf8IGqjhGR3YFpwPqgZWaQeygwUlXHqupqvOd9m4j0CEPnFjQCW4D1/jt2DfA14OiQ5U4ETgHuwwsK+iWIrnUEZdB9JCK/B14TkatF5HBVnauqa4Fn8GqVJ4hIzxDl/kREDlbV4cB6EengF1pHAVVBy80g+whVnSYiHUTkVODfeAXzUBH5hX98IM85Te5VInKUqqqI9AW+jFd7Xg58W0S+LiI7BiEzg+yfiMjBwKt462+8ilcROBd4VER+5x8fis7+5nl4tefn8GqUv8PrMgxD51d9nY9U1fFpej0L1KelKWi5qXu9L16FZ18ReRqvFSrAgyJyh398IP3sLeTuDcwGzhKRVMWuEdgI/NQ/PrDyS0RuFJHBaZu6A2uAnr7B/wCvBn9+kLIzyF2jqivweh2WAgNEpJ9/bDTjGVE1SUJqan0fr+viOOAm4HmgX9r+04FHgVNbnFdUU6wtuXjdC92AF4C9otQZbxnTXfzfhwCbgF4hyt3f33er//0HoBp4C+geos4vAHvi1STvTN1n4Ai8LqVdQ5S7C3AtMJJt3Td9gY+A/iHpfKN/v/dN278fXgXg6JDz1wvAHv6+24BL0uQvB/qGKHdH4LfAI8B4/1kPwOvK2T4gubvgzQxeh9c91Tlt35+AW1PvEF5o/wXAbiHLTU0q/ixeZesHQT7j9j4l21LwrebewP2qOg4vw0zDy7gAqOobeA/xSBEZLCJX+tsLboq1J1e97oUewA6qukRE+ovIhYXKy1H2EF/2DPVaSajqbLxunaK7c7LInQ7cICKd8dbTHg2cCbyIV0BWFyu3Hdl3qOpM4A+qugRAVacBr+H1P4chdybevf4rUA908bt3luJ1Z+1XrNwssv+E95xvTx2jqp8C++B3ZwRRc20jf93tH7I9Xm05JX8McHBIcmcC96jqbXhdN5ep6q/wQkWPAWoDqjlvBp5X1Z54NfOfp+27H6/Ff7zfdbkYeA+vQhKK3PRuSFUdj9cK7iMi3xWR6wKQ2y4laxTSCvZL/P+b8KzqASJyUtqhr+HVNv5FAJ4i7cg92d/3OaCriNwAPEyaO11IsvdL11lEOonIvcBOeEYxDLn34LVMPoM3fvOyqn4RuBSvoNo7w6WCkn038BkROUm98RxEpLOI/BVP50LX2GhP7l3AsXg6/wnP4F4vIkP9bROKlduG7Ex5+2ngNP+YxpDk3gMcKCKHA6vw9D1dRP6M10KaFpLcu/Aqc6eo6gZVnSSeK+z1QIOq1hVTuUuTXYPnJAHwR+CH4rsZ+4ZvGHAWcJeI3I9nBBeEJVdVVTxSZfNEvHdqSLEy80lc7D94XSEd0v6nmlfb4dVcTvT/dwB+Atzm/++NZ9kfooDujALk3u7/vxZvPOH2QuQWqfN38Jrad0eg88+AmzJcoyAPpCJ0/jpeX/c9Eel8o/9/D+CXeC91Qd0Zhersb7sc+CYFdIcWoPPv8LpGrwGGA38uROcC9E11TR6L58DxEAV6FLaU3WJfKh0PAQ+mb8drGVwP3IzXAxC6XH9bF+BtvO6zwLpj201vVIIKfIinAanmc6e07ZL6D1wFjEvbdyXb+nq3o4D+5SLk/tL/fSJwUMQ6/8L/fQRp4yoRyP25/7sTBY7VBKDzZ0jrb49KbupYF3nb/985Qrm/Svufd6EcwDPeFdg9hHvdIZV//e/eeHNQDsJzR/1Coc85ILk9CtG5mE+kwnK8kSk/9JvwXCu/0WJ/x7Tfe/rfb+M1r47H8+P+pSO5v8pXrkvZru616VySebtk5BYim7SaOF5XXSNe183nHMidlK/cID9OhOZ4c2/A747x/5/g3+yUhb0Lb8CpH7A/8L94bly/K0W5prPpXK46l8C9Ho03DijAV4BPKbCC51puEJ/YrKcgIj8BjgQ+VtUHRGQPtg2ufBZvcGcd8Cbekp1/AG5Q1XVp1+iiqrWlINelbNPZdC5HuUHIFpGDgFXqTRaMvdxQcG2VfKP0XWAsnkvju8DvgZ3xBhCH4fUZC3AO3g3tk3ZuwdPOXck1nU3nctW5hO91weFZXMkN6+M8Af6NeRw41/89AG+U/zr///Zpx+3v3+Q+/v9iJ6E5kWs6m87lqrPd62h1DuPjdJ5CC1/crwCoagVe3KD9RGSQqm5OO+USvNnCqQlaBfV9uZLrUrbpbDqXo1yXsl3qHCaRGgXxwiw3xfDQbRNuPgA6iMiJ/v9pwDKgj3/8eSIyGc/SXqH+hKW4y3Up23Q2nctRrkvZLnWOkkiMgoh8QUT+BfxMRHZKWUgR6eQfMhcvdMH5ItJRvbAFe7AtbMAc4H9V9RJVXRl3uaaz6VyuOtu9jlZnF4RuFHzreR+e/3Ef4Dcicjo0xQkCb/bve3gz+P4sXjydnnhxTlDVqar6YSnINZ1N53LV2e51tDq7IoqWwgC8WOxPArfgrTFwgXhx2RGRW4AngA14blo98W7wBrwIp6Um16Vs09l0Lke5LmW71NkJndo/JD9EZCCwVlXn+JtmA/1FpI+qLhORTXhRLM8RkXfw+tmuU9X5/vnfxxuxz2stAldyTWfTuVx1tnsdrc5xIchFKnYWkRF4kzO+LdsWkJ+LtzDGIyLyLF70zInATqo6R1UvVNX54o/kq7fKVM431JVc09l0Lled7V5Hq3PcCGxGs3grcJ2HdwMPAd5T1Vf8fV3w1pXdXVX/IyJnAVep6mB/fwctMPSvK7mms+lcrjrbvY5W57hRlFEQkUvwYtdPVNWN4q2v2gEvnLDgrSm7LMN5v8db+/S+UpLrUrbpbDqXo1yXsl3qHGfy7j4Sjz1FZBTe4g8XAX8XkV6qWq2qW/CWY+yJtwB1+rnHi8h4vOBQL5eCXNPZdC5Xne1eR6tzyaD5Tefu6H8fDPzb/90Jb3nC4S2O/RneaH0P/KneeC5dZ+cj06Vc09l0Lled7V5Hq3MpfXK9mZ3w1iC+A/gS8FXg0bT9greI95fStu2AtxLWR8BKCljE3pVc09l0Lled7V5Hq3MpftrtPhKRL+Et79gTmIcX7KkOOFlEPg9NMTxuwoshnmIw8GNgMnCk+our54oruS5lm86mcznKdSnbpc4lSw5W9gTg4rT/9wNX4IWLHe9v64A3rfsp/KUg8cLEnliotXIl13Q2nctVZ7vX0epcqp9cbmp3vLWOU/1xF7FtgfpJwNX+7wHAk4ElzJFc09l0Lled7V5Hq3OpftrtPlLVLapao6oN/qbTgEr/9/eAQ0XkZeBJYAJ4I/ztXTeucl3KNp2jk+tSdtLkupTtUueSJQ+L2xGvmfUqcKC/7UC8FYaOB/qGYbVcyTWdTedy1dnudbQ6l9onn3kKjXgLT68GjvKt6/VAo6q+r6pL87hWPriS61K26Ww6l6Ncl7Jd6lxa5GltB+Ld3PeBy6KyXK7kms6ms8ktH9kudS6lT15hLkRkL+BiYKiq1uR8YpG4kutStulsOpejXJeyXepcSgQWEM8wDMMofSJdo9kwDMOIN2YUDMMwjCbMKBiGYRhNmFEwDMMwmjCjYBiGYTRhRsEwDMNowoyCYRSJiPQTkQsLOO8REflmAed9V0T65HueYeSCGQXDSENEOhVwWj8gb6NQBN/FWwXMMALHjIKROETkEhGZIiKTReRxv8Y+1F+39w4R2V5EHhaRj0Vkooic45/XT0TeE5EJ/ueL/iWHACeIyCQR+ZmIdBSRP/nnTxGRH/nni4jcJyIzRGQEsFs76fyDf41pIvKAf/438cI8D/PldQvvThlJxGY0G4lCRA4HhgODVHW1iOwCDAV6AeeoaoOI3AbMUNV/i8jOeEsyHgMoXgC1ahE5CC/+/gAROQn4hap+xZdxObCbqt4iItsBHwDf8q9xBXAmsDswA/iBqj6TJa27qOpa//fjwFOq+pKIvOPLqwjhFhkJp5CmsmGUMqcAz6jqagBVXeuHz39at8XcPx34moj8wv/fFdgHWAbcJyJHAw14C8Bn4nS8SJyp8YIewEHAiXiGpAFYJiJvt5PWk0XkV3gLxewCTAdeyktbw8gTMwpG0hC8Gn9LNrc45jxVnd3sRJEb8BZx74/X9VrdhoyrVfX1FuefnUV26wuIdMVbOnKAqi72ZXfN5VzDKAYbUzCSxkjg2yKyK3hdNBmOeR24OrUCl4gc42/vASxX1Ua8aJsd/e1VwI4tzr9CRDr75x8sItsDo4H/8ccc9gRObiOdKQOwWkR2ANK9lFrKM4zAsJaCkShUdbqI3Aq8KyINwMQMh90M3ANM8Q3DAuAreDX3Z0XkW8AotrUupgD1IjIZeAT4C55H0gT//Erg68BzeN1XU4E5wLttpHO9iPzLP3YB8HHa7keAf4jIVuALqro1r5tgGG1gA82GYRhGE9Z9ZBiGYTRh3UeG4RgReQ7Yr8XmX7ccqDaMKLDuI8MwDKMJ6z4yDMMwmjCjYBiGYTRhRsEwDMNowoyCYRiG0cT/A562mY5QPRSBAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['2019-5-1' : '2019-5-10']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "            ...\n",
       "            3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n",
       "           dtype='int64', name='created_at', length=865)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 每天的情况都差不多，下面看看周末和平常是不是一样的\n",
    "df['2019-5-2'].index.weekday # 0 代表星期一，  1 代表星期二 ，  5，6分别代表周六和周日"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['weekday'] = df.index.weekday"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg           created_at  weekday  \n",
       "created_at                                                       \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07        3  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07        3  "
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "2018-11-01 00:02:07      5        845.84        136.31        225.73   \n",
       "2018-11-01 00:03:07      9       1305.52         90.12        196.61   \n",
       "2018-11-01 00:04:07      3        568.89        138.45        232.02   \n",
       "\n",
       "                     res_time_avg           created_at  weekday  weekend  \n",
       "created_at                                                                \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07        3    False  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07        3    False  \n",
       "2018-11-01 00:02:07         169.0  2018-11-01 00:02:07        3    False  \n",
       "2018-11-01 00:03:07         145.0  2018-11-01 00:03:07        3    False  \n",
       "2018-11-01 00:04:07         189.0  2018-11-01 00:04:07        3    False  "
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断是否是周末 \n",
    "df['weekend'] = df['weekday'].isin({5, 6})\n",
    "df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend\n",
       "False    7.016846\n",
       "True     7.574989\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 对weekend 进行分组， 对count列 求平均值\n",
    "df.groupby('weekend')['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend  created_at\n",
       "False    0              3.239120\n",
       "         1              1.668388\n",
       "         2              1.162551\n",
       "         3              1.086705\n",
       "         4              1.155556\n",
       "         5              1.136364\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.000000\n",
       "         9              1.080000\n",
       "         10             1.239011\n",
       "         11             2.031690\n",
       "         12             4.195845\n",
       "         13             6.668042\n",
       "         14             8.260503\n",
       "         15             8.934448\n",
       "         16             8.466504\n",
       "         17             6.784996\n",
       "         18             6.717731\n",
       "         19             8.655913\n",
       "         20            10.536496\n",
       "         21            10.846906\n",
       "         22             9.034164\n",
       "         23             5.946834\n",
       "True     0              3.467782\n",
       "         1              1.741849\n",
       "         2              1.161826\n",
       "         3              1.050000\n",
       "         4              1.076923\n",
       "         5              1.333333\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.071429\n",
       "         9              1.144928\n",
       "         10             1.254111\n",
       "         11             1.992958\n",
       "         12             4.031889\n",
       "         13             6.905772\n",
       "         14             8.851321\n",
       "         15             9.858422\n",
       "         16             9.420550\n",
       "         17             7.334743\n",
       "         18             7.342150\n",
       "         19             9.270430\n",
       "         20            11.173609\n",
       "         21            11.695043\n",
       "         22            10.419916\n",
       "         23             7.025452\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末调用平均次数多，7.57，  \n",
    "# 周末哪个时段调用次数比较高\n",
    "\n",
    "df.groupby(['weekend', df.index.hour])['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>weekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.239120</td>\n",
       "      <td>3.467782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.668388</td>\n",
       "      <td>1.741849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.162551</td>\n",
       "      <td>1.161826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.086705</td>\n",
       "      <td>1.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.155556</td>\n",
       "      <td>1.076923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.136364</td>\n",
       "      <td>1.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.071429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.080000</td>\n",
       "      <td>1.144928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.239011</td>\n",
       "      <td>1.254111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2.031690</td>\n",
       "      <td>1.992958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>4.195845</td>\n",
       "      <td>4.031889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6.668042</td>\n",
       "      <td>6.905772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>8.260503</td>\n",
       "      <td>8.851321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>8.934448</td>\n",
       "      <td>9.858422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>8.466504</td>\n",
       "      <td>9.420550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>6.784996</td>\n",
       "      <td>7.334743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6.717731</td>\n",
       "      <td>7.342150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>8.655913</td>\n",
       "      <td>9.270430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>10.536496</td>\n",
       "      <td>11.173609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>10.846906</td>\n",
       "      <td>11.695043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>9.034164</td>\n",
       "      <td>10.419916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5.946834</td>\n",
       "      <td>7.025452</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "weekend         False      True \n",
       "created_at                      \n",
       "0            3.239120   3.467782\n",
       "1            1.668388   1.741849\n",
       "2            1.162551   1.161826\n",
       "3            1.086705   1.050000\n",
       "4            1.155556   1.076923\n",
       "5            1.136364   1.333333\n",
       "6            1.000000   1.000000\n",
       "7            1.000000   1.000000\n",
       "8            1.000000   1.071429\n",
       "9            1.080000   1.144928\n",
       "10           1.239011   1.254111\n",
       "11           2.031690   1.992958\n",
       "12           4.195845   4.031889\n",
       "13           6.668042   6.905772\n",
       "14           8.260503   8.851321\n",
       "15           8.934448   9.858422\n",
       "16           8.466504   9.420550\n",
       "17           6.784996   7.334743\n",
       "18           6.717731   7.342150\n",
       "19           8.655913   9.270430\n",
       "20          10.536496  11.173609\n",
       "21          10.846906  11.695043\n",
       "22           9.034164  10.419916\n",
       "23           5.946834   7.025452"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末和非周末数据叠加\n",
    "df.groupby(['weekend', df.index.hour])['count'].mean().unstack(level = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEHCAYAAAC3Ph1GAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXxU9bn48c93JvueQAIhIQn7FgKEsCqLbCoiKluhVmldoLVWa9vb9l57q/dX2962XtvbW1vrUrQWAQWsikvd2EQQkhDCFvYAWSAbkIVsM/P9/XGGECAJJJnJmUme9+s1r8ycnDnnybzCw8n3fL/Po7TWCCGE8D4WswMQQgjRNpLAhRDCS0kCF0IILyUJXAghvJQkcCGE8FI+HXmy7t2766SkpI48pRBCeL2MjIwSrXX01duvm8CVUn8D5gBFWutk57bfAXcCdcAx4Fta6/PXO1ZSUhLp6emtjV0IIbo0pdTJprbfyBDKq8BtV237BEjWWqcAh4F/b1d0QgghWu26CVxrvQUou2rbx1prm/PlDiDeDbEJIYRogStuYj4AfOiC4wghhGiFdt3EVEo9CdiAlS3sswxYBpCQkHDN9+vr68nLy6OmpqY9oXiVgIAA4uPj8fX1NTsUIYQXa3MCV0otxbi5OV23UFBFa/0i8CJAWlraNfvl5eURGhpKUlISSqm2huM1tNaUlpaSl5dHnz59zA5HCOHF2jSEopS6DfgJMFdrfbE9AdTU1NCtW7cukbwBlFJ069atS/3FIYRwj+smcKXUKmA7MEgplaeUehD4ExAKfKKUylJKvdCeILpK8r6kq/28Qgj3uO4QitZ6SRObX3FDLEII0XGKDoK9DmJHmB1Jm3XJpfRTp051y4KipKQkSkpKXH5cIYQLORyw7Y/wws3w6hyo8t5/s10ygQshuqjKIli5AD75T+g7FeqqYNN/mx1Vm3lFAv/tb3/LH//4RwCeeOIJpk2bBsBnn33GN77xDT7++GMmTJhAamoqCxcupLKyEoCMjAymTJnC6NGjufXWWyksLLziuA6Hg6VLl/Kzn/0MoNnjJCUl8dRTT5Gamsrw4cPJyckBoLS0lFmzZjFq1CiWL1+OdDcSwoMd/RT+MhFOboM5v4d710LatyD9b1B82Ozo2sQrEvjkyZPZunUrAOnp6VRWVlJfX88XX3zB8OHDeeaZZ/j000/JzMwkLS2N5557jvr6er73ve+xdu1aMjIyeOCBB3jyyScbjmmz2bj33nsZOHAgzzzzDCUlJU0e55Lu3buTmZnJd77zHZ599lkA/uu//oubb76Z3bt3M3fuXE6dOtWxH4wQ4vpsdfDxz+Af8yGoOzy8EdIeAKVg6r+DX7BxRe6FOrQaYVuNHj2ajIwMKioq8Pf3JzU1lfT0dLZu3crcuXM5cOAAN910EwB1dXVMmDCBQ4cOsW/fPmbOnAmA3W4nNja24ZjLly9n0aJFDUl9x44dTR7nknnz5jXEsn79egC2bNnS8PyOO+4gMjLSzZ+EEKJVSo/BugehYLeRtG/9FfgGXv5+cHeY9EP49Ck4thH63WJerG3gFQnc19eXpKQkVqxYwcSJE0lJSWHjxo0cO3aMPn36MHPmTFatWnXFe/bu3cuwYcPYvn17k8ecOHEiGzdu5Ic//CEBAQForZs8ziX+/v4AWK1WbDZbw3aZEiiEh8p+EzY8ARYrLHodhs5ter9x34b0V4yr9OVbjP29hFcMoYAxjPLss88yefJkJk2axAsvvMDIkSMZP34827Zt4+jRowBcvHiRw4cPM2jQIIqLixsSeH19Pfv372843oMPPsjs2bNZuHAhNput2eNcL6aVK40qAh9++CHnzp1zx48uhGiN2gp4+9uw/mHoORy+va355A3gGwAz/gvO7oOsNzouThfwmgQ+adIkCgsLmTBhAj169CAgIIBJkyYRHR3Nq6++ypIlS0hJSWH8+PHk5OTg5+fH2rVr+clPfsKIESMYOXIkX3755RXH/MEPfkBqair33Xcf3bp1a/I4LXnqqafYsmULqampfPzxx03WehFCdKCC3fDXKZC9Bqb8FJZugIje13/fsHsgfix8/guorXR/nC6iOnLmRFpamr56/vXBgwcZMmRIh8XgKbrqzy2EWzgcsOPP8OnTEBwN81+CpJtbd4zTu+CVGTD5xzDtyevv34GUUhla67Srt3vNFbgQQjRr3YPw8ZMwYBZ8Z1vrkzdA7zGQPB++/D+4kO/6GN1AErgQwrudPQD718NNj8PilRAU1fZjTX8KtMMYSvECksCFEN4tayVYfGDiY8bc7vaITIQJj8CeVZCf6Zr43EgSuBDCe9nrjemCA28z5nS7ws0/MBb8fPwz8PDV1ZLAhRDe6+inUFUEI7/uumMGhMEt/2Esuc/Z4LrjuoEkcCGE98paaVwtD5jl2uOmLoXowfDJz42l+B5KEjjG6sqRI0c2PHJzc5vdNzc3l+Tk5I4LTgjRtKpSOPQRpHwNrK3rL5tbUsUzGw7w8tbjTe9g9YFZv4Sy47DrZRcE6x5esZTe3QIDA8nKyjI7DCFEa+x9Cxz1Nzx8orVm29FSVmw7weeHitAafK2Ku0fF0T3E/9o3DJgB/abB5t/AiMXtm93iJnIF3ozc3FwmTZpEamoqqamp16ziBNi/fz9jx45l5MiRpKSkcOTIEQD+8Y9/NGxfvnw5dru9o8MXovPLWml00+nZ8l/E1XV23vjqFLf+YQvfeOUrsk6f53u39OeNh8dRb9esy8hr/s2znoHactj8WxcH7xoedQX+X+/t50BBuUuPObRXGE/dOazFfaqrqxk5ciQAffr04e233yYmJoZPPvmEgIAAjhw5wpIlS67p4vPCCy/w+OOPc++991JXV4fdbufgwYOsWbOGbdu24evryyOPPMLKlSu5//77XfpzCdGlndkLZ7Lh9uYTa8H5al7fcZJVO09x/mI9Q2PD+N2CFO4c0YsAX6Ng1ZikSNbsOs2yyX2bLkzXYxik3g+7XoIxD0H3/u76idrEoxK4WZoaQqmvr+fRRx8lKysLq9XaZGGrCRMm8Mtf/pK8vDzmzZvHgAED+Oyzz8jIyGDMmDGA8Z9DTExMh/wcQnQZWW+AxReSF1yxWWtN5qlz/G1bLh/tO4PWmllDe/Ktm5IY2yfqmiS9eEwCP3xrD1+dKGN8325Nn+uWJ2HvWqPk7OKV7vqJ2sSjEvj1rpQ70u9//3t69OjBnj17cDgcBAQEXLPP17/+dcaNG8f777/Prbfeyssvv4zWmqVLl/LrX//ahKiF6AJsdUaxqkG3QbCRdOtsDt7fW8CKbblk510gLMCHB2/uw33jE+kdFdTsoWYPj+Xp9/azeuep5hN4SAzc/ISxOvPEVugzyR0/VZvIGHgzLly4QGxsLBaLhddff73Jcezjx4/Tt29fHnvsMebOnUt2djbTp09n7dq1FBUVAVBWVsbJkyc7OnwhOq+jn8DFUhj5DQAcDs28v2zjiTV7qKq18Yu7k9nxH9P5j9lDWkzeAIF+Vu4ZFccH+85w/mIL0wUnfBfC4o16Kw6HK3+adpEE3oxHHnmE1157jfHjx3P48GGCg4Ov2WfNmjUkJyczcuRIcnJyuP/++xk6dCjPPPMMs2bNIiUlhZkzZ17Ti1MI0Q5Zb0BwDPSfDsCO46Xsyy/nZ3cM4ZMnpnDf+ESC/G58cGHxmATqbA7WZ7ZQwMo3EGY8DYV7jKt/DyHlZE3SVX9uIdqlshieG2x00bn1lwA8sSaLTw+eZdeTMxpuTrbWXc9vo7rOxr++P7n5LlsOh1FutrwQvr/XmCveQaScrBDC++19Cxw2GHkvAOU19Xywt5C5jWaWtMWSMb05fLaSzFPnm9/JYoHxj0BFARQdaPO5XEkSuBDCe2S9Ab1GQY+hAGzYU0itzcGitBvoutOCO0f0ItjPyuqdp1reMW608TU/o13ncxVJ4EII71C4B87ubbj6Bngz/TQDe4SQEh/erkMH+/swd2QvNmQXUlFT3/yOkUkQGCUJXAghWiXrDbD6GV1zgCNnK8g6fZ5Fab2bH7duhcVjEqiut/NOVkHzOyllXIV7SK3w6yZwpdTflFJFSql9jbZFKaU+UUodcX6NdG+YQoguzVZn1P0eNLuhJslbGXn4WIxaJq6QEh/OkNgwVu+6gWGU4oMe0fz4Rq7AXwVuu2rbT4HPtNYDgM+cr4UQwj0OfwTVZQ3DJ/V2Y9rftMExTReiagOlFEvG9mZffjl78y40v2PcaKPtWuEel5y3Pa6bwLXWW4CyqzbfBbzmfP4acLeL4+owpaWlDWVke/bsSVxcXMPrujrPrQMsRJeS9QaE9DSqAwKbDxVTUlnLwnbevLzaXSPjCPC1sKqlq/C4VOOrB4yDt3UiYw+tdSGA1rpQKeW1xT66devWUAfl6aefJiQkhB/96EdX7KO1RmuNxSK3DITocJVFcORjmPhow9zrN9NP0z3En6mDol16qvBAX2YPj+XdrAKenD2EYP8mUmRwd4hI9IgE7vaMpJRappRKV0qlFxcXu/t0LnP06FGSk5P59re/TWpqKqdPnyYiIqLh+6tXr+ahhx4C4OzZs8ybN4+0tDTGjh3Ljh07zApbiM4new1oe8PwSUllLZ/nFDEvNQ5fq+tT2NfHJlBZa+P97BZWUHvIjcy2XoGfVUrFOq++Y4Gi5nbUWr8IvAjGSswWj/rhT40yka7Uczjc/t9teuuBAwdYsWIFL7zwAjabrdn9HnvsMX784x8zfvx4cnNzmTNnDvv27Wt2fyFcQmvYtw7ixxjd1DsjrY3hk7g0iB4EwD9352NzaBaOjnfLKUcnRtI/JoRVu06xaEwzQzRxo2H/euOvgxDzBiDamsDfBZYC/+38+o7LIvIg/fr1aygL25JPP/2UQ4cONbw+d+4c1dXVBAYGujM80dWlvwLv/xB8AmHyj2DiY+DjZ3ZUrlWYZax6vOM5wBjOfDP9NCN7RzCgR6hbTqmUYvGY3jzz/kEOnalgUM8mztOwoCfTqIpokusmcKXUKmAq0F0plQc8hZG431RKPQicAha6JJo2Xim7S+MCVhaLhcZ1Y2pqahqea63ZuXMnfn6d7B+P8FzFh+BfT0KfKUYX9c9/YQw1zH4W+k4xOzrX2b0SrP6QPA+A7LwLHD5bya/uGe7W085Ljee3Hx1i1c5TPD23iTLXsSmgrMY4uIkJ/EZmoSzRWsdqrX211vFa61e01qVa6+la6wHOr1fPUul0LBYLkZGRHDlyBIfDwdtvv93wvRkzZvD88883vJb+msKtbLWw7kHwC4Z5L8HX/gFffwvsdfD3ubDuYag4a3aU7WerNWqfDJkDgcZSk7cyThPga2HOiFi3njoq2I9bk3vy9u58auqbaInoFwwxQ02/kSnTKlrhN7/5DbfddhvTp08nPv7y+Nvzzz/Ptm3bSElJYejQobz00ksmRik6vc9/Ydwruut5CO1hbBs4Cx7ZAZN/DAf+CX8aAztfAocX92M99CHUnG9oWlzjXCV5e3IsYQGt60LfFkvG9OZCdT0f7mvmZmZcqpHAO7Ci69WknKxJuurPLdrp2EZ4/W5IexDmPNf0PiVHjLHxE5shdqSx36UxW2+yciGc2QdP7AOLlXey8nl8dRZvPDSOif27u/30Dofmlv/ZRI+wAN5cPuHaHTJeg/ceg+9lQrd+bo1FyskK4e0ulsE/vwPdBxrd0pvTfQDc/w7MfwUqCuGl6bDhB1DdQqlUT1NxBo5+CiMWg8UoE/tWeh7xkYHNtz5zMYtF8bUxvdl5ooxjxU0sm298I9MkksCF8AZaw7vfg6oSmP8y+LXcKgylYPgCeHQXjFsOGSvgT2mwZ42pf/LfsOw1xnJ15/BJ3rmLbDtWwoLR8Vgs7S9cdaMWjI7Hx6JYs+v0td+MHgy+QaaOg3tEAu/IYRxP0NV+XuECu1+HnA0w/ecQO+LG3xcQDrf/Bh7eCBEJ8PYyeHUOlJ1wX6ztdWnud/xY468JYF1GPlrD/FT3zP1uTkxoADOG9GBdRh51tqt6YVp9jCGqrpzAAwICKC0t7TJJTWtNaWlpk13uhWhSyVH48CfQZzJMeLRtx+g1Eh78FOb8Ac5kw3uPuzZGV8rPhOIcGGWsvHQ4NGszT3NT/27XbVLsDovH9qa0qo5PDjQxsycu1ShqZW+hhrgbdVxTt2bEx8eTl5eHNy2zb6+AgIArZrEI0Sx7Pax/yKiDfc9fjbZebWWxQNq3oDwftv6PMdXw0iwWT5K1EnwCYNg9AHx1oozTZdX8cOYgU8KZNCCauIhAVu86xR0pV01fjBsN9j/B2f3Gf5IdzPQE7uvrS58+fcwOQwjPtOnXULAbFv0dwnq55pjJ82HL7+DAOzBumWuO6Sr1NbBvLQy50xj+Ad5KP01ogA+3Jfc0JSSrRbEorTe///Qwp8suXvlXQOMWayYkcNOHUIQQzcjdBlufg1H3wdC7XHfcmCHGIpT96113TFc59AHUXGi4eVlRU88H+wq5s51Ni9tr0Zh4LIprmz1EJEBQd9NmokgCF8ITVZ+H9csgqg/c5oYSE8nz4NR2uJDn+mO3x55VENrLKBEAbMgupKa+/U2L2ys2PJCpg2J4Kz0Pm73RzcyGFmvm3MiUBC6Ep9EaNjwBlWeMKYP+Ia4/xzCjtgj73255v45UcRaOfgYjvtZo7vdpBsSEMKKdTYtdYfGY3hRVGKVsrxA32rjpWlvR4TFJAhfC0+xZbQxvTP13962g7NYPeo0yytF6ir1vGnW/RxjDJ0eLKsg85bqmxe01bXAMMaH+rL56TnjcaEBDQcfXQJIELoQnKTsOH/wIEibCzU+491zJ840bpKXH3HueG6E1ZK0ykmH0QMBoWmx1YdPi9vKxWlgwOp5Nh4o4f7FRu0UTW6xJAhfCU9htxri3ssK8vzYMIzRHa83GQ0WUVbWxd6tzmp5H3Mw8kw1F+2HEEgBsjZoWR4e6pmmxK0weGI1DQ+apc5c3BkVBZB9J4EJ0aVt+B3m7jOJTEQkt7upwaJ5+dz/fWrGLmc9tZkN2QesXw4XHQ+/xsM8DEnjWKmOue/J8ADYfLqa4otZtXXfaakR8BL5Wxa7cc1d+w6QWa5LAhfAEhdmw5beQstioYdICm93Bj9bu4bXtJ1kyNoH4yEAefWM3y1/PoKi8psX3XiN5vtHx5uyBdgTfTvZ6o+73wNuMq1kuNS3245bBntUvPdDPyrBe4WQ0lcDL84wiXB1IErgQniBjhdF55vbftLhbrc3Od9/IZH1mPj+YOZBf3ZPMuu9M5N9vH8zmw8XMeG4zb6WfvvGr8aF3gbKYO4xy5BO4WNLQtLi0spbPDhZxzyj3NC1ur7TESPbknafW1qjWukmVCT3v0xGiq7HVGrNBhtwJgRHN7naxzsZDr6Xzr/1n+fmcoTw2fQBKKXysFpZP6ceHj09icM8w/m1tNktX7CLv3MXrnzu0ByRNMoZRzKpHtOcNCI6G/tMBePtS02KT5343Jy0pilqbg3355Zc3Nm6x1oEkgQthtsMfGasPRyxudpcL1fXc98pOth0t4bcLUnjg5mvLT/SNDmH1svH8v7uGkZ5bxq2/38Lft+ficFwnMSfPh7JjRlGmjnaxDA59BMMXgdUXrTVrM/IY0TuCgW5qWtxeoxON9m4ZJxt1kvQNhB7DJIEL0eVkrYLQWOg7tclvl1TWsuTFHWTnnedPX09tcVWixaK4f0ISHz8xmdTESH7+zn4Wv7iDEyVVzZ9/yJ1g8TFnTvjeteCoh5HG7JN9+eXknKnwuJuXjUWH+pPULajpG5kFmeBwNP1GN5AELoSZKovh6CeQsqjJaYMF56tZ9NftHC+p5KX705g9/Maa+cZHBvH3B8by2wUp5Jwp57Y/bOHFLceuXAZ+SVAU9JtmrMrswOQDGMMnPYZDT6PL/LrMPPx8LNyZ4qLCXW6SlhRF5slzV95riBtt/CVVdrzD4pAELoSZ9q0Dh82YfXKVEyVVLHxhO8Xltfz9gXFMHdS6GRlKGVX0Pv3BFCYPjOZXH+Qw/y9fcuhME0u+k+fDhdPGNMaOUpRjLCRyXn3X2Ry8u6eAmUN6EB7k/qbF7ZGWGElpVd2Vf9k0rkzYQSSBC2GmPauMDjs9hl6xOedMOQtf2E51vZ1Vy8Yztk9Um08RExbAi/eN5v+WjCLvXDVz/m8r6zKuKmI1aLYxC6Yjh1H2vGHc+Bu+EIBNzkVJ80d7xsrLlqQlGePg6Y2HUaIHgW+wJHAhuoSig1CY1bD68JLdp87xtb/uwGqBN5ePJzmu/YWclFLcOaIXn/xgCslx4fz3RzlXtggLCIOBs5zDKPbmD+QqDjtkvwkDZkKI8ZfF+sx8uof4MXlAtPvP3079okOIDPIlvfGNTIvVqC8jCVyILmDPKuPmYfLlhTtfHivh3pe/IjzQl7Xfnkj/GNfOxIgK9uOx6QMorqjlw32FV34zeT5UFUHuFy49Z5OOb4SKwob/vM5V1fFZzlnuGhmHjwfO/b6aUorRiZGkn7z6RmaqURbA1sbyBq3k+Z+UEJ3RpSvQ/jMhxLji/PTAWb65YhfxkYG89e0Jbuv/OGVANH26B/Pql7lXfmPArcYQQEcs6slaBQERMOh2ADZkF1Bv1x3etLg9RidGcby4itLK2ssb40aDvQ7O7uuQGCSBC2GGE5udV6DGzcuMk+dY/o8MBvcMZc2yCfQIc1/Ta4tFcd/4RHafOk923vnL3/ALgsGzjVZr7mzSW3MBcjYYV/w+RqGqtZn5DO4ZytBeYe47r4uNSbo0H7zRVXgH38iUBC6EGfasNno+DrwNgD9vPEp4oC8rHxpHZLCf20+/IC2eID/rtVfhyfOh+hwc3+S+k+//J9hqGtqmHS2qZM/p8yzw4LnfTUmOC8fParlyGCU8HoJjOmxJfbsSuFLqCaXUfqXUPqXUKqWU+y4bhOgsaivg4HtGVxzfAI4WVfJZThH3T0gkNKBjps+FBfgyPzWeDXsKKWk8BNBvGviHu3c2yp5V0G1Aw9Xq+kyj7vfckZ499/tqAb5WhseHk57b6EZmB7dYa3MCV0rFAY8BaVrrZMAKNL8WWAhhOPAu1F9suAJ95YsT+PtYuG98YoeGsXRiInV2B6t3NmrU6+NvrMw8uMHoEO9qZceNXpwjl4BS2B2at3fnM3lAd2JCve/6Ly0pkr35F6ipv6qwVclhY6jIzdo7hOIDBCqlfIAgoKD9IQnRye1ZBVF9IX4MJZW1rM/MY15qPN1COrZxQf+YUG7u351/7DhFfeMVmsnzoK7CWCHqantWA6ph4dKO46UUXqhhvpcNn1ySlhhFvV2TndcoWcel0lEt1tqcwLXW+cCzwCmgELigtf7YVYEJ0SmdPwW5W43pc0rx+vaT1NocPNhEcaqOsHRiEmfKa/h4/9nLG/tMgaBurh9GcTiM/7z6ToFwY7HOuow8QgN8mDGkh2vP1UEuFba6Yj54r1HG1w4YRmnPEEokcBfQB+gFBCulvtHEfsuUUulKqfTi4uK2RypEZ5D9pvE1ZRE19XZe33GS6YNj6B/jhs7zN2Da4BjiIwN5rfHNTKsPDL3bqBJYW+m6k5360vgPzNm0uKrWxof7zjAnpRcBvi23j/NUUcF+9IsOvnJFZlAURPXz7AQOzABOaK2Ltdb1wHpg4tU7aa1f1Fqnaa3ToqM9f4WVEG6jtXEFmngTRCaxPjOfsqo6HprU17SQrBbF/RMS2ZlbxoGCRvWtk+eDrdoodesqWavALwSGzAHgw31nqK63Mz/V85fOtyQtMYqMk+euLNvbQS3W2pPATwHjlVJBSikFTAcOuiYsITqh/AwoPQojluBwaF7+4jjJcWGM79v2OieusCitNwG+liuvwhMmGCVuXdUvs64KDvzTuLL3CwaM2SeJ3YIahiG8VVpSJBeq6zlW3OivlbjRUFEA5e69LdieMfCvgLVAJrDXeawXXRSXEJ3PnlXgEwBD72LjoSKOF1fx8KS+GNc/5okI8uOeUXH8Myufc5c63FssRtf6o59A9fmWD3AjDm6AusqGyoP556vZfryUeaPiTf/52ystyfgP+Ir64B3UYq1ds1C01k9prQdrrZO11vdprWuv/y4huqBLbdMGz4GAMF7aepzY8IAbru/tbksnJlFrc7Am/fTljcnzjWXhOe+3/wR73oCIBEgwRlnfzsxDa5jn5cMnAEndgugW7Hfljcyew406N24eB5eVmEJ0hCMfGyscRyxhX/4Fdhwv41s3JXlM097BPcMY1yeK17efxH5pLDdutJF02zsb5UIeHN9szLyxWNBasz4zn3F9otxW76UjKaVIS4q8ckm9bwD0SJYELkSnkLUKQnpA36m8tPU4If4+LB6bYHZUV/jmxCTyz1fz6UHnlEKljKvw45ugqqTtB85eA+iGui+7T5/neEmVVxWuup60xChOll6kqKLR4qe40UbDCjd2OZIELoS7VZXCkX9ByiIKKurZkF3I4jG9CeugZfM3aubQHvQKD7jyZmbyfNB2o8BVW2ht/OeVMNFYvIRx8zLA18Ltw3u2P2gPMfpSYaurx8Fry40b124iCVwId7vUNm3EElZsOwHAt0xauNMSH6uFe8cn8uWxUg6fdbZd65EM3Qe2fTZKfgaUHmm4eVlrs/PenkJuHdazw+q+dITkXuH4+1iauZHpvmEUSeBCuNueVdBzOBXhA1m98zSzh8cSFxFodlRNWjI2AT+fRlMKLw2jnNzWtilxWW+AT6AxfRD4/GARF6rrO9XwCYCfj4URvSPIaHwjs/sA8AuVBC6E1yo+BAWZMGIJa3adpqLWxsOTPO/q+5KoYD/mjujF+sx8LlQ7a4IPmwdoowxsa1yaeTPEmHkDRtf5HmH+3NS/u2sD9wBpiZHsLyjnYp3N2GCxQq+Rbk3gPm47shDCuPpWVmxD57PiLwcY2yeKlPgIs6Nq0TcnJrE2I4+30k8bq0SjB0KP4bDp15CxwugmpB3G2LjDcfm5dji/ZzfGvh02o+qis21aSWUtmw4V8+CkPlgt3j33uyljkqL486ZjZJ0+z8R+zv+g4kbD9ueN/8x8XF+sTBK4EO7S0DZtBh/kOsg/X83Tc4eZHdV1JceFM4hp7dkAABslSURBVDoxktd3nOSBm/pgsSiY8TTs/jsoi/NhNa4wL71ueH7V9pAY6HsLAO9mFWBzeFfbtNZITbh8I/OKBO6ohzP7IH60y88pCVwId8ndCuX56FnP8PKm4/TtHsz0wTFmR3VDlk5M4rFVu9l0uIhpg3vAgBnGox3WZeYxPC6cgT1c26jZU4QH+TKwRwi7mmux5oYELmPgQrjLntXgH84uv3Fk513ggZudV7Ne4PbknsSE+vPqlyddcrycM+XsLyj3+sJV15OWFMXuk+cuL4YK6wUhPd02Di4JXAh3qK00Ou8Mu5sXtxcSGeTrVUMHvlYL945LZMvh4iuLNLXR+sx8fCyKO0d4V9u01kpLjKSi1nZ5GqabW6xJAhfCHQ6+B/VV5CfezWc5Z7lvfCKBft5V83rJuN74Wo2mE+1hszt4e3c+twyO6fCuQx1tjLOw1RV9MuNSjbnwrigKdhVJ4EK4w55VEJnEn491x9dq4b4JSWZH1GoxoQHcMTyWtRl5VNba2nycL46WUFxR2+mHTwDiIwOJCfW/slP9pXHwgt0uP58kcCFc7UIenNjCxSELWZuZz7xRcUSHeueV59KJSVTW2liXkdfmY6zLzCciyJdbvOQGbntcKmx1RYeeuFSY/ayxotXFJIEL4Wp71wKaNXU3UWtz8JAHL9y5nlEJkYyID+e17blXdpy5QeU19Xy8/wx3pvTC38e7hpDaKi0xivzz1RReqDY2BITD2Icb+oC6kiRwIVzt2Oc4YobxfJaNWwZF0z/Gu6fNLZ2YxPHiKr442vqKhB9kF1Jrc3ht1/m2SHMWtrriKtxNZB64EK5kq4XTOzkSP5+SU3U8bGK/S1e5IyWWX31wkF9sOMC0wTFEh/objxD/hufhgb5NdtZZn5lPv+hgRsSHmxC5OYbEhhHoayU9t8zts24kgQvhSvmZYKtm5dkEhsaGMaFfN7Mjajd/HytP3jGEZ/91mBVf5lJnu7a+tZ/VQvcQP6LDAhoSe3igLztzy/i3Wwd5fdu01vC1WhiVEHHljUw3kQQuhCvlfoFG8c65JJ7+Wp9Ok7juGRXPPaPi0VpTXmOjuKLWeFTWXn7ufJ1/vpqs0+cpraol0NfaKdqmtVZaYiR/2niUylobIf7uS7OSwIVwpZNfUODfF1+fKO4Y3vkWrSilCA/0JTzQl/4xIS3ua7M7sDk0Ab5d4+ZlY6OTonBo2H3qHJMGRLvtPHITUwhXsdWhT33FptqB3DIoBj+frv3Py8dq6ZLJGyA1IQKLcv+NzK79GyaEKxVkomzVbKkb3CXmPIvmhQb4Mqhn2JWd6t1AErgQrpK7FYB0hnDzgM7XsEC0TlpiJLtPncdml6bGQni+3G0ctybRPzHB4xoWi46XlhTJxTo7OWcq3HYOSeBCuIKtDsepHWyuHcQ0GT4RGKVlAXblum8YRRK4EK5QsBuLrZodjiEy/i0AiIsIpFd4gFvng0sCF8IVnOPfp0NHMeA60+tE1zE6KYr03DK0bn0dmRshCVwIF3Cc2MohncCowf06zeId0X5piZGcLa8l71y1W47frgSulIpQSq1VSuUopQ4qpSa4KjAhvIa9Hn3qK7bbB3PLIBk+EZddKmyV4aZhlPZegf8v8JHWejAwAjjY/pCE8DIFu7Haq0lnGBP7e3/tE+E6g3uGEeLv47YbmW1eSq+UCgMmA98E0FrXAXWuCUsIL+Ic/3YkTCDIT6pTiMusFsWohAiPvALvCxQDK5RSu5VSLyulgl0UlxBeo/rIZnIcvRkzzPUdV4T3S0uM4tDZCi5U17v82O1J4D5AKvAXrfUooAr46dU7KaWWKaXSlVLpxcXF7TidEB7IXo9P/k5j+qCMf4smpCVFojVknnL9VXh7EngekKe1/sr5ei1GQr+C1vpFrXWa1jotOtp9VbmEMEVBFr72ak6EjCSpu/wBKq41KiGCP3xtJClxrm9q0eYErrU+A5xWSg1ybpoOHHBJVEJ4ifpjWwAIGTjZ5EiEpwry8+HuUXF0C3F9Y+v23nH5HrBSKeUHHAe+1f6QhPAe5TkbKXHEMy55sNmhiC6oXQlca50FpLkoFiG8i72ekKJ0PmIy8/tEmR2N6IJkJaYQbaQLduPvqKa859gu27hAmEsSuBBtVLp/IwDRydNMjkR0VZLAhWij6sObOOyIY0LKELNDEV2UJHAh2sJeT/dzu8kJGEFcRKDZ0YguShK4EG1QdTKDQF2NPeEms0MRXZgkcCHaIG/3JwAkjJphciSiK5MELkQb6BNfcEzHkTJY6p8I80gCF6KVtL2e3pVZ5EeMxtcq/4SEeeS3T4hWOrH3S4KpwbefLJ8X5pIELkQrndnzKQADxt5qciSiq5MELkQr+edv57Q1nu49E8wORXRxksCFaIXzlRcZWLuPsu5jzQ5FCEngQrRGdvpWQlU1YUNuMTsUISSBC9EaFw58DkBC6iyTIxFCErgQN8zh0EQU7eSsX2+sYT3NDkcISeBC3Kg9p0oYoQ9ysdcEs0MRApAELsQNO5C5jTBVTXSyLJ8XnkESuBA3qPboZgBCBk0xORIhDJLAhbgBxRW1JFbs5lxgAoTK+LfwDJLAhbgBmw+dYYwlB514s9mhCNFAErgQN+Bo9peEqWoih0r7NOE5JIELcR02uwPrqW0AqCS5AheeQxK4ENeRcfIco+z7qAxJgrBYs8MRooEkcCGuY1POGcZZcvDrN8nsUIS4go/ZAQjh6U4f+IpQVQ39ZPqg8CxyBS5ECwrOV9PjXLrxIkkaGAvPIglciBZsOlTMeMtB6sL7QFgvs8MR4gqSwIVowcaDhYy35uDbV8a/hedpdwJXSlmVUruVUhtcEZAQnqKq1kbJ0QxCuYjqIwlceB5XXIE/Dhx0wXGE8Cif5RSRqvcbLxJl/Ft4nnYlcKVUPHAH8LJrwhHCc3y4t5ApfjnoqL4QHmd2OEJco71X4H8Afgw4XBCLEB7jYp2NnYdymUA2qt90s8MRokltTuBKqTlAkdY64zr7LVNKpSul0ouLi9t6OiE61Oc5RUyx78RX18HwhWaHI0ST2nMFfhMwVymVC6wGpiml/nH1TlrrF7XWaVrrtOjo6HacToiO88HeQhb470BHJEBv6UAvPFObE7jW+t+11vFa6yRgMfC51vobLotMCJNcrLORnXOEcXovKnkBKGV2SEI0SeaBC3GVTYeKmeb4Eit2GT4RHs0lCVxrvUlrPccVxxLCbO/vLWS+73Z0zFDoMdTscIRollyBC9FIdZ2dwzn7GMFhlFx9Cw8nCVyIRjYfLmKm/QvjRfJ8c4MR4jokgQvRyPt7z3CP73Z073EQmWh2OEK0yDsSeOkx2LfO7ChEJ1dTb+f0wV0M4JQMnwiv4B0JfNsf4J/fherzZkciOrHNh4uZ5diKVlYYdo/Z4QhxXd6RwMc8DLZqyHrD7EhEJ/Zhdj53+2xH950Kwd3NDkeI6/KOBB6bAvFjYdfL4JCyK8L1aurtlOZ8QS+KsaQsMjscIW6IVyTweruDM4PuhbJjcGKz2eGITmjrkRJm2rdit/rD4DvMDkeIG+IVCfwn67KZtykGHdTNuAoXwsU+yj7NHJ8dqEGzwT/U7HCEuCFekcAXpMZTUKU52PMuOPQBXMg3OyTRidTa7FQd/IwoKrCkyOwT4T28IoFP6NeNYb3C+OXZ8WitIWOF2SGJTuSLIyXMdGyh3jcM+s8wOxwhbphXJHClFMsm92VbaQglsVMh4zWw1ZkdlugkPt5zgtus6ViG3Q0+/maHI8QN84oEDnDH8FjiIgJ5qWYaVBVBzntmhyQ6gVqbHXvOhwRTg3WEDJ8I7+I1CdzHauGBm/vwUmEfakN6w65XzA5JdAJfHi1lln0rtYEx0rhYeB2vSeAAi8f0JjTAj/cDboeT2+DsAbNDEl7u86zD3GLNwpqyACxWs8MRolW8KoEH+/vwjfGJ/DI/FW31h3S5ChdtV2dzYM15F1/s+MjsE+GFvCqBA3xzYhIVlgh2h02DPauhptzskISX+vJYCbPsW6kKSYJeo8wOR4hW87oEHhMWwN2jevHrkpugrhKy15gdkvBSX2TuZbzlIP6jFknfS+GVvC6BAzw8qS+76vtwNmSIcTNTa7NDEl6m3u4g4PA7WJTGZ4TUPhHeySsT+IAeoUwb3IMXqqZC8UE4+aXZIQkv8+WxUmbat3Ihchh0H2B2OEK0iVcmcIBlk/uyqnostT6hUh9FtNqu9K8YYTlO0OjFZociRJt5bQIf1yeKQfExvKtuQR98FyrOmh2S8BL1dgfBR97BgcI3ZYHZ4QjRZl6bwJVSPDy5L89XTkE5bJD5mtkhCS+xwzn75Fz0WAjrZXY4QrSZ1yZwgNuG9cQe2ZfdfqmQvgLsNrNDEl4ga+dm+lkKCRuzxOxQhGgXr07gPlYLD93clz9XToWKAjj8odkhCQ9nszuIOPYONnzwHX632eEI0S5encABFqbFk+k/ljJrjNzMFNf11bFiZjq+oDR2MgRGmh2OEO3i9Qk8yM+Hr0/oy99qp8LxTVByxOyQhAc7+NVH9FTniBz3dbNDEaLdvD6BA9w/IYl1TMOmfKRKoWiW3aGJOv4utSoAv6HS91J4vzYncKVUb6XURqXUQaXUfqXU464MrDWiQ/2ZmjqMD+1jcWSthLoqs0IRHmzn0QKmObZT0nsW+AWZHY4Q7daeK3Ab8EOt9RBgPPBdpdRQ14TVeg9N6svfbTOw1JbD3rVmhSE82LHt7xKhqug24V6zQxHCJdqcwLXWhVrrTOfzCuAgEOeqwFqrX3QIEYMmc5gEHDtfkvoo4goXquuJyX2XCms4AQOnmx2OEC7hkjFwpVQSMAr4yhXHa6tlU/rxWv0MLGf3Ql66maEID1JTb+c3L/2DKY5dVA+4E6y+ZockhEu0O4ErpUKAdcD3tdbXFOdWSi1TSqUrpdKLi4vbe7oWpSVGcjz2DqoIxLHrJbeeS3gHu0Pz7Gtr+Gnpf2ALiSXmjv80OyQhXKZdCVwp5YuRvFdqrdc3tY/W+kWtdZrWOi06Oro9p7uReFg6dRhv2Sah962HqhK3nk94Nq01f1r9Dt89/W+owHCCH/4AQnuaHZYQLtOeWSgKeAU4qLV+znUhtc/MoT3ZGHonVkc9OvN1s8MRJvr7ex9z76HvYfULJHTZBxDR2+yQhHCp9lyB3wTcB0xTSmU5H7NdFFebWS2KGVOmsN0+lLodL4GtzuyQhAne+Xwrt2Usw8/Hx0jeUX3NDkkIl2vPLJQvtNZKa52itR7pfHzgyuDaakFqPGt85+JflQ+v3w2V7h17F55l8850xmxeSpBVE/jQBlT0QLNDEsItOsVKzKsF+llJnDCfx+oexXY6Hf3iFCjIMjss0QF279tP3/eXEGapxedb7+AbO8zskIRwm06ZwAGWT+mLSlnAXdU/p6SyDsffbpUFPp3ckWNHiFw7n0hVif3e9QT2lk7zonPrtAk8yM+H/108imVfu4cF9l+RWd8H1j2I/vg/wWE3OzzhYgX5p/B5/W5iOMfFhasJ7z/O7JCEcLtOm8AvuWtkHCu/P4f/6flbXrfNQH35R+pfXwjV58wOTbjI+ZKzVL9yJz0ponju34kZNsXskIToEJ0+gQPERwbxj+WTqJjxG560PQQnNlP95ylQlGN2aKKdLpaXUfLCbOLt+eTOeInE1FvNDkmIDtMlEjgY0wsfmdqfxd/+OT8IfIbK8vPUvnAL9Qc2mB2aaKP6ixcoeP4OEupPsO+m/2PIzdJhR3QtXSaBXzI8PpzfPPEwfxu6ghxbT3zfvJfS938BDofZoTXPXg+H/wVrH4S/3Azbn4faSrOjMpWuq+LUn+4kqSaHHam/Y/Qs6W8puh6lO7BqX1pamk5P95wiU59nn6T67Ue5Q28hN2YGiQ++ivIPNTssg9ZGQa69b8K+dXCx1GgBFpkEBbshIALGLoNxyyG4u9nRdgy7Dc6fxF58mNMfPEvvCxn8a/AzzF7yqNmRCeFWSqkMrXXaNdu7cgIHKC6v4dMVP2dR2YsU+CUReP9quvcebF5Apccg+03IXgPnToBPAAy6HVK+Bv2mg48fnN4JX/wBDr0PPoEw6hsw8VEjuXcGVaVQesRoj1d6hLqzh6kvOkRAxSms2gZAvbbyz4SfsuCBf8Oo6iBE5yUJvAVaaz7bsJq09B+CUuwPm8LFsL7Yowbg02MQYT37ERsZTEyYP/4+1lYd2+HQlF2so7iilqKKWorKayiurKWovJaaeju+VgsR+jwjzn/GsNJ/EVu5H42iMGosp+LncLbXLCyBYfhaLfj7WAgN8GFgz1DCAnyh+BBs+6OR7LUDkufBTY9Dz+Fu+qRcpO4iVBQ6H2fg/CkoPQolR9ClR1CNZgjV4UOuowfHdS9OEEtNWF+Cew0hYeAIZo4ejNUiyVt0fpLAb0Dukb1UrH+C+JrDROoLDdtrtQ+5uifHdC8KfHpTFphEdVgfHN0GEBkZRc+wAOodmuLyGooqai8n64oaSirrsDs0oPGnHn/qCKSOKH8HaT7HudW+mfF6Dz7KwX5HIm/bb+Y9+wTOEtVirAlRQQzrFcawXmGMirjIyPxVBO19HVVXCf1nwM1PQOJN0JFXp/Z6qDxrJOXyAuNrQ6J2JuvyQqi9cM1bK327cUrFsa82mkO2nhzXvSgLSKBHwiBGJnUjNSGSlPhwgvx8Ou7nEcJDSAJvJV1VSlVBDpX5B6g/ewhL2RGCyo8TVp2PlcsLgQp1FMccsVQTQKCqJdRST7DVRpCqI1DV4a9r8dW1+NhrUDTxWYf3huELIWURju6DqbM7qLM7qLcZX+tsxqPW+fr8xToOFlZwoKCc/QUXyC292HCoPsF1PBKyidlV7xBsO0dNj1H4TfkBlsFzwNKO+9WNE/OlpFx59nJSrnA+v1gKV/2MDuVDTUB3yn2jKVVRnNERnK6P4FhNKMdrQzmjozirI6m2BDMkNpTUhEhGJUSQmhBJQlSQDI8IgSRw17HVQtkJ5xjtYexFh7EXHUI56vDxD0L5BoFvoPMRZIxhX3ruG+D8GmiMXUcmQvzYdiXXipp6Z0K/wP6CcvYXlHOqqJS72cQy6wYSLMUUWmIp9e3RquMqrQlxlBPhKCPcce0VswML5y2RnLdGcc7ajfMW4+sZRzhHqkM5Wh3KGR1JGaFo52Sn8EBfYsMDjEdEILFhxteEqCCS48Lk6lqIZkgC70LqbA6OFFVwIK8MdeAdBhS+i5+jptXHqbKEUGbpxjlrFOcszoe1G+csUZRbwnGoa+8HBPv7EBseeDlRhwcSG2E8lwQtRNtIAhdCCC/VXALvcgt5hBCis5AELoQQXkoSuBBCeClJ4EII4aUkgQshhJeSBC6EEF5KErgQQngpSeBCCOGlOnQhj1KqGDjZxrd3B0pcGI63ks/hMvksDPI5GDrz55CotY6+emOHJvD2UEqlN7USqauRz+Ey+SwM8jkYuuLnIEMoQgjhpSSBCyGEl/KmBP6i2QF4CPkcLpPPwiCfg6HLfQ5eMwYuhBDiSt50BS6EEKIRSeBCCOGlvCKBK6VuU0odUkodVUr91Ox4zKKUylVK7VVKZSmlukxnDKXU35RSRUqpfY22RSmlPlFKHXF+jTQzxo7QzOfwtFIq3/k7kaWUmm1mjB1BKdVbKbVRKXVQKbVfKfW4c3uX+53w+ASulLICzwO3A0OBJUqpoeZGZapbtNYju9h811eB267a9lPgM631AOAz5+vO7lWu/RwAfu/8nRiptf6gg2Mygw34odZ6CDAe+K4zJ3S53wmPT+DAWOCo1vq41roOWA3cZXJMogNprbcAZVdtvgt4zfn8NeDuDg3KBM18Dl2O1rpQa53pfF4BHATi6IK/E96QwOOA041e5zm3dUUa+FgplaGUWmZ2MCbrobUuBOMfNBBjcjxmelQple0cYun0wwaNKaWSgFHAV3TB3wlvSOCqiW1dde7jTVrrVIzhpO8qpSabHZAw3V+AfsBIoBD4H3PD6ThKqRBgHfB9rXW52fGYwRsSeB7Qu9HreKDApFhMpbUucH4tAt7GGF7qqs4qpWIBnF+LTI7HFFrrs1pru9baAbxEF/mdUEr5YiTvlVrr9c7NXe53whsS+C5ggFKqj1LKD1gMvGtyTB1OKRWslAq99ByYBexr+V2d2rvAUufzpcA7JsZimksJy+keusDvhFJKAa8AB7XWzzX6Vpf7nfCKlZjOqVF/AKzA37TWvzQ5pA6nlOqLcdUN4AO80VU+B6XUKmAqRrnQs8BTwD+BN4EE4BSwUGvdqW/wNfM5TMUYPtFALrD80jhwZ6WUuhnYCuwFHM7N/4ExDt61fie8IYELIYS4ljcMoQghhGiCJHAhhPBSksCFEMJLSQIXQggvJQlcCCG8lCRwIYTwUpLARZejlEpSSn29De97VSm1oA3v+6ZSqldr3yfE9UgCF15NKeXThrclAa1O4O3wTUASuHA5SeDC4yml7ndW29ujlHrdeSX8nFJqI/AbZ5mBvymldimldiul7nK+L0kptVUplel8THQe8r+BSc4GCE8opaxKqd8535+tlFrufL9SSv1JKXVAKfU+16lup5T6ufMY+5RSLzrfvwBIA1Y6zxfovk9KdDlaa3nIw2MfwDDgENDd+ToKo7HBBsDq3PYr4BvO5xHAYSAYCAICnNsHAOnO51OBDY3OsQz4mfO5P5AO9AHmAZ9glHDoBZwHFrQQa1Sj568DdzqfbwLSzP4s5dH5Hm3581OIjjQNWKu1LgHQWpcZtYx4S2ttd+4zC5irlPqR83UARj2MAuBPSqmRgB0Y2Mw5ZgEpjca3wzES/mRglfM8BUqpz68T6y1KqR9j/McRBewH3mvVTytEK0gCF55O0XT996qr9pmvtT50xRuVehqj6NMIjOHCmhbO8T2t9b+uev/sZs597QGUCgD+jHGlfdp57oAbea8QbSVj4MLTfQYsUkp1A6NxbRP7/Av4nrPMKEqpUc7t4UChNmpl34cxFAJQAYRe9f7vOGtMo5Qa6CzZuwVY7BwjjwVuaSHOS8m6xNlooPFslavPJ4RLyBW48Gha6/1KqV8Cm5VSdmB3E7v9AqPccLYziecCczCuiNcppRYCG7l81Z4N2JRSezDG0/8XY2ZKpvP9xRj9FN/GGMLZizGuvrmFOM8rpV5y7puLUcf+kleBF5RS1cAErXV1qz4EIZoh5WSFEMJLyRCKEEJ4KRlCEaKVlFJvY0wzbOwnV98EFcLdZAhFCCG8lAyhCCGEl5IELoQQXkoSuBBCeClJ4EII4aX+P2ITXFvyiK/1AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.groupby(['weekend', df.index.hour])['count'].mean().unstack(level = 0).plot()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
